From 5baa91fe3b42bef1ef73e679802e0d0388934fb6 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Sat, 30 Sep 2023 15:05:26 +0200 Subject: [PATCH 001/653] add TSK_07 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index 37b48fa6aa8..b1a70fdf3f4 100644 --- a/can/common.cc +++ b/can/common.cc @@ -145,6 +145,9 @@ unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const break; case 0x120: // TSK_06 Drivetrain Coordinator crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; + break; + case 0x31E: // TSK_07 Drivetrain Coordinator + crc ^= (uint8_t[]){0x78, 0x68, 0x3A, 0x31, 0x16, 0x08, 0x4F, 0xDE, 0xF7, 0x35, 0x19, 0xE6, 0x28, 0x2F, 0x59, 0x82}[counter]; break; case 0x121: // Motor_20 Driver Throttle Inputs crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; From d8cabc500f31f94c2e4062165a647ba6b40d8b91 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Sat, 30 Sep 2023 15:05:39 +0200 Subject: [PATCH 002/653] change HCA_01 and TSK_07 --- vw_mqb_2010.dbc | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 8806e0011a4..10d1f48f3a2 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1151,8 +1151,8 @@ BO_ 288 TSK_06: 8 Motor_Diesel_MQB SG_ TSK_zul_Regelabw : 58|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB BO_ 798 TSK_07: 8 Motor_Diesel_MQB - SG_ TSK_07_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB - SG_ TSK_07_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Gateway_MQB + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Gateway_MQB SG_ TSK_Wunschgeschw : 12|10@1+ (0.32,0) [0|326.72] "Unit_KiloMeterPerHour" Gateway_MQB SG_ TSK_Texte_Primaeranz : 48|5@1+ (1,0) [0|31] "" Gateway_MQB SG_ TSK_Limiter_Anzeige : 55|1@1+ (1,0) [0|1] "" Gateway_MQB @@ -1214,17 +1214,15 @@ BO_ 1602 WIV_01: 8 Motor_Diesel_MQB BO_ 294 HCA_01: 8 Frontsensorik SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [15|30] "Unit_Hertz" Vector__XXX - SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX - SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar - SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ HCA_01_Sendestatus : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SET_ME_0XF : 12|4@1+ (1,0) [0|15] "Unit_Hertz" Vector__XXX + SG_ HCA_01_LM_Offset : 16|8@1+ (1,0) [0|255] "Unit_centiNewtoMeter" Vector__XXX + SG_ HCA_01_Enabled : 30|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Status_HCA : 32|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX - SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar - + SG_ SET_ME_0X1 : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SET_ME_0XFE : 40|8@1+ (1,0) [0|255] "" Vector__XXX + BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX From 2ae244d01e219429d6fb81ffce8717991f36ef67 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 2 Oct 2023 09:04:29 +0200 Subject: [PATCH 003/653] Update README.md: adapt readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 20e31a90344..de6f2d309e1 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,7 @@ +Adaption to MQBA0 EPS 2Q1909144J 6030 used in a PQ26 no radar non ACC car (Volkswagen Polo 6C [Polo 6R Facelift]) PQ26 can be seen as nearly identical to MQB regarding can bus communication. + +Panda can 1 is directly connected to engine can bus Panda can 0 is directly connected to comfort can bus + ## DBC file basics A DBC file encodes, in a humanly readable way, the information needed to understand a vehicle's CAN bus traffic. A vehicle might have multiple CAN buses and every CAN bus is represented by its own dbc file. From b4017b16644bb19d2a4fac335440d412d1fbadbf Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 4 Oct 2023 21:55:59 +0200 Subject: [PATCH 004/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 10d1f48f3a2..8af6d690871 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1214,7 +1214,7 @@ BO_ 1602 WIV_01: 8 Motor_Diesel_MQB BO_ 294 HCA_01: 8 Frontsensorik SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ SET_ME_0XF : 12|4@1+ (1,0) [0|15] "Unit_Hertz" Vector__XXX + SG_ SET_ME_0XF : 12|4@1+ (1,0) [0|15] "" Vector__XXX SG_ HCA_01_LM_Offset : 16|8@1+ (1,0) [0|255] "Unit_centiNewtoMeter" Vector__XXX SG_ HCA_01_Enabled : 30|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX From 95f97e07be508d43dc634cc928eadb3c1f9bd7b7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 5 Oct 2023 13:32:41 +0200 Subject: [PATCH 005/653] Update vw_mqb_2010.dbc:adapt HCA_01 for further analysis --- vw_mqb_2010.dbc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 8af6d690871..896c8e37992 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1214,14 +1214,18 @@ BO_ 1602 WIV_01: 8 Motor_Diesel_MQB BO_ 294 HCA_01: 8 Frontsensorik SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ SET_ME_0XF : 12|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HCA_01_LM_Offset : 16|8@1+ (1,0) [0|255] "Unit_centiNewtoMeter" Vector__XXX - SG_ HCA_01_Enabled : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [15|30] "Unit_Hertz" Vector__XXX + SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX + SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar + SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ HCA_01_Enable : 30|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SET_ME_0X1 : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Available : 32|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SET_ME_0XFE : 40|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX + SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 445ab672afce5da6f7cdd1e7ba1278f2e3d7ca54 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 5 Oct 2023 17:36:30 +0200 Subject: [PATCH 006/653] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de6f2d309e1..cd132481d28 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ Adaption to MQBA0 EPS 2Q1909144J 6030 used in a PQ26 no radar non ACC car (Volkswagen Polo 6C [Polo 6R Facelift]) PQ26 can be seen as nearly identical to MQB regarding can bus communication. -Panda can 1 is directly connected to engine can bus Panda can 0 is directly connected to comfort can bus +Panda can 0 is directly connected to engine can bus Panda can 1 is directly connected to comfort can bus ## DBC file basics From f14628b3607cb20d3f6fb5de03c62e9b56bb7e1c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:07:48 +0200 Subject: [PATCH 007/653] Update vw_mqb_2010.dbc: initial preparation LDW BAP 0x19 --- vw_mqb_2010.dbc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 896c8e37992..03a24028cc1 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,6 +1416,31 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX +BO_ 389224705 BAP_LDW_01_S: 8 XXX + SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX + SG_ Data : 16|48@1+ (1,0) [0|281474976710655] "" XXX + +BO_ 389224720 BAP_LDW_10_S: 8 XXX + SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX + SG_ Data : 16|48@1+ (1,0) [0|281474976710655] "" XXX + +BO_ 389224720 BAP_LDW_10_L1: 8 XXX + SG_ 0x80 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Length : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Op : 16|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 20|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 26|6@1+ (1,0) [0|63] "" XXX + SG_ Data : 32|32@1+ (1,0) [0|2147483647] "" XXX + +BO_ 389224720 BAP_LDW_10_Ln: 8 XXX + SG_ 0xC : 0|4@1+ (1,0) [0|15] "" XXX + SG_ Index : 4|4@1+ (1,0) [0|15] "" XXX + SG_ Data : 8|56@1+ (1,0) [0|4503599627370495] "" XXX + CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; CM_ SG_ 159 EPS_Lenkmoment "Steering input by driver, torque"; From 15baeadf8f3fdee5185fe80495ec1a5ae655cb66 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:39:13 +0200 Subject: [PATCH 008/653] Update vw_mqb_2010.dbc change BAP LDW 0x19 01 short msg --- vw_mqb_2010.dbc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 03a24028cc1..82dc3359686 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1420,7 +1420,12 @@ BO_ 389224705 BAP_LDW_01_S: 8 XXX SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data : 16|48@1+ (1,0) [0|281474976710655] "" XXX + SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX BO_ 389224720 BAP_LDW_10_S: 8 XXX SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX From b4160d23f21165b715dd4230f524f098301a6e4d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 24 Oct 2023 19:49:01 +0200 Subject: [PATCH 009/653] Update vw_mqb_2010.dbc fix bap msgs --- vw_mqb_2010.dbc | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 82dc3359686..f2f27327f87 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1431,7 +1431,12 @@ BO_ 389224720 BAP_LDW_10_S: 8 XXX SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data : 16|48@1+ (1,0) [0|281474976710655] "" XXX + SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX BO_ 389224720 BAP_LDW_10_L1: 8 XXX SG_ 0x80 : 0|8@1+ (1,0) [0|255] "" XXX @@ -1439,12 +1444,21 @@ BO_ 389224720 BAP_LDW_10_L1: 8 XXX SG_ Op : 16|4@1+ (1,0) [0|15] "" XXX SG_ LogID : 20|6@1+ (1,0) [0|63] "" XXX SG_ Func : 26|6@1+ (1,0) [0|63] "" XXX - SG_ Data : 32|32@1+ (1,0) [0|2147483647] "" XXX + SG_ Data1 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 56|8@1+ (1,0) [0|255] "" XXX -BO_ 389224720 BAP_LDW_10_Ln: 8 XXX +BO_ 389224720 BAP_LDW_10_LN: 8 XXX SG_ 0xC : 0|4@1+ (1,0) [0|15] "" XXX SG_ Index : 4|4@1+ (1,0) [0|15] "" XXX - SG_ Data : 8|56@1+ (1,0) [0|4503599627370495] "" XXX + SG_ Data1 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data7 : 56|8@1+ (1,0) [0|255] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From f1a0df85c9e800419f95988ae0c8c5b2d53c7fe1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:05:04 +0200 Subject: [PATCH 010/653] Update vw_mqb_2010.dbc remove bap for testing --- vw_mqb_2010.dbc | 44 -------------------------------------------- 1 file changed, 44 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index f2f27327f87..896c8e37992 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,50 +1416,6 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX -BO_ 389224705 BAP_LDW_01_S: 8 XXX - SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10_S: 8 XXX - SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10_L1: 8 XXX - SG_ 0x80 : 0|8@1+ (1,0) [0|255] "" XXX - SG_ Length : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Op : 16|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 20|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 26|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10_LN: 8 XXX - SG_ 0xC : 0|4@1+ (1,0) [0|15] "" XXX - SG_ Index : 4|4@1+ (1,0) [0|15] "" XXX - SG_ Data1 : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data7 : 56|8@1+ (1,0) [0|255] "" XXX - CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; CM_ SG_ 159 EPS_Lenkmoment "Steering input by driver, torque"; From a7427ee58e8ac89431d5b9505925be2506351f18 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:12:58 +0200 Subject: [PATCH 011/653] Update vw_mqb_2010.dbc insert one bap message again for testing --- vw_mqb_2010.dbc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 896c8e37992..5bb9f8d29e4 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,6 +1416,17 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX +BO_ 389224705 BAP_LDW_01_S: 8 XXX + SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX + SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX + CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; CM_ SG_ 159 EPS_Lenkmoment "Steering input by driver, torque"; From 66042dcffc4c45d5f659c27e52acc32cd9615bec Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:18:40 +0200 Subject: [PATCH 012/653] Update vw_mqb_2010.dbc: insert all bap msg again with fix --- vw_mqb_2010.dbc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 5bb9f8d29e4..a391cd96117 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1427,6 +1427,39 @@ BO_ 389224705 BAP_LDW_01_S: 8 XXX SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX +BO_ 389224720 BAP_LDW_10_S: 8 XXX + SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX + SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX + +BO_ 389224720 BAP_LDW_10_L1: 8 XXX + SG_ SET_ME_0X80 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Length : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Op : 16|4@1+ (1,0) [0|15] "" XXX + SG_ LogID : 20|6@1+ (1,0) [0|63] "" XXX + SG_ Func : 26|6@1+ (1,0) [0|63] "" XXX + SG_ Data1 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 56|8@1+ (1,0) [0|255] "" XXX + +BO_ 389224720 BAP_LDW_10_LN: 8 XXX + SG_ SET_ME_0XC : 0|4@1+ (1,0) [0|15] "" XXX + SG_ Index : 4|4@1+ (1,0) [0|15] "" XXX + SG_ Data1 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data7 : 56|8@1+ (1,0) [0|255] "" XXX + CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; CM_ SG_ 159 EPS_Lenkmoment "Steering input by driver, torque"; From 287cff011aac4fc9a83541fb7ae32aadc95e3cd7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 25 Oct 2023 17:32:48 +0200 Subject: [PATCH 013/653] Update vw_mqb_2010.dbc fix bap and use multiplexing because opendbc does not support multiple same ids --- vw_mqb_2010.dbc | 60 +++++++++++++++++++++++-------------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index a391cd96117..5e7b94e52f6 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1427,38 +1427,34 @@ BO_ 389224705 BAP_LDW_01_S: 8 XXX SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX -BO_ 389224720 BAP_LDW_10_S: 8 XXX - SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10_L1: 8 XXX - SG_ SET_ME_0X80 : 0|8@1+ (1,0) [0|255] "" XXX - SG_ Length : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Op : 16|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 20|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 26|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10_LN: 8 XXX - SG_ SET_ME_0XC : 0|4@1+ (1,0) [0|15] "" XXX - SG_ Index : 4|4@1+ (1,0) [0|15] "" XXX - SG_ Data1 : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data7 : 56|8@1+ (1,0) [0|255] "" XXX +BO_ 389224720 BAP_LDW_10: 8 XXX + SG_ Op m0 : 0|4@1+ (1,0) [0|15] "" XXX + SG_ LogID m0 : 4|6@1+ (1,0) [0|63] "" XXX + SG_ Func m0 : 10|6@1+ (1,0) [0|63] "" XXX + SG_ Data1 m0 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 m0 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 m0 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 m0 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 m0 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 m0 : 56|8@1+ (1,0) [0|255] "" XXX + SG_ 0x80 m1 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ Length m1 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Op m1 : 16|4@1+ (1,0) [0|15] "" XXX + SG_ LogID m1 : 20|6@1+ (1,0) [0|63] "" XXX + SG_ Func m1 : 26|6@1+ (1,0) [0|63] "" XXX + SG_ Data1 m1 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 m1 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 m1 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 m1 : 56|8@1+ (1,0) [0|255] "" XXX + SG_ 0xC m2 : 0|4@1+ (1,0) [0|15] "" XXX + SG_ Index m2 : 4|4@1+ (1,0) [0|15] "" XXX + SG_ Data1 m2 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ Data2 m2 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ Data3 m2 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Data4 m2 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Data5 m2 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ Data6 m2 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ Data7 m2 : 56|8@1+ (1,0) [0|255] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From ba6c041ad3e8c1f7e2bd6304bf30831555f8567c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 25 Oct 2023 18:17:30 +0200 Subject: [PATCH 014/653] Update vw_mqb_2010.dbc: remove msg structures, i dont understand opendbc multiplexing, use coding for further usage --- vw_mqb_2010.dbc | 44 +++++--------------------------------------- 1 file changed, 5 insertions(+), 39 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 5e7b94e52f6..12de06ff3ac 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,45 +1416,11 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX -BO_ 389224705 BAP_LDW_01_S: 8 XXX - SG_ Op : 0|4@1+ (1,0) [0|15] "" XXX - SG_ LogID : 4|6@1+ (1,0) [0|63] "" XXX - SG_ Func : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 : 56|8@1+ (1,0) [0|255] "" XXX - -BO_ 389224720 BAP_LDW_10: 8 XXX - SG_ Op m0 : 0|4@1+ (1,0) [0|15] "" XXX - SG_ LogID m0 : 4|6@1+ (1,0) [0|63] "" XXX - SG_ Func m0 : 10|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 m0 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 m0 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 m0 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 m0 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 m0 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 m0 : 56|8@1+ (1,0) [0|255] "" XXX - SG_ 0x80 m1 : 0|8@1+ (1,0) [0|255] "" XXX - SG_ Length m1 : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Op m1 : 16|4@1+ (1,0) [0|15] "" XXX - SG_ LogID m1 : 20|6@1+ (1,0) [0|63] "" XXX - SG_ Func m1 : 26|6@1+ (1,0) [0|63] "" XXX - SG_ Data1 m1 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 m1 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 m1 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 m1 : 56|8@1+ (1,0) [0|255] "" XXX - SG_ 0xC m2 : 0|4@1+ (1,0) [0|15] "" XXX - SG_ Index m2 : 4|4@1+ (1,0) [0|15] "" XXX - SG_ Data1 m2 : 8|8@1+ (1,0) [0|255] "" XXX - SG_ Data2 m2 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ Data3 m2 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Data4 m2 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Data5 m2 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ Data6 m2 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ Data7 m2 : 56|8@1+ (1,0) [0|255] "" XXX +BO_ 2536708353 BAP_LDW_01: 8 XXX + SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX + +BO_ 2536708368 BAP_LDW_10: 8 XXX + SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From f6568b598af467344098157a003c6d4d1ecbb09b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:00:18 +0100 Subject: [PATCH 015/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 12de06ff3ac..31f4ee6217d 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,10 +1416,10 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX -BO_ 2536708353 BAP_LDW_01: 8 XXX +BO_ 389224705 BAP_LDW_01: 8 XXX SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX -BO_ 2536708368 BAP_LDW_10: 8 XXX +BO_ 389224720 BAP_LDW_10: 8 XXX SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; From 10a7d0d8d35fb6c40976500eae505bfb4e8fa6e9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:19:43 +0100 Subject: [PATCH 016/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 31f4ee6217d..3f663bb82c4 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,11 +1416,11 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX -BO_ 389224705 BAP_LDW_01: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX +BO_ 2536708353 BAP_LDW_01: 8 XXX + SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX -BO_ 389224720 BAP_LDW_10: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX +BO_ 2536708368 BAP_LDW_10: 8 XXX + SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From a52cc0f7344611c7fdcb8f147019dd0a66c0abc7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 30 Oct 2023 20:11:32 +0100 Subject: [PATCH 017/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 3f663bb82c4..b16069d59ae 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1416,11 +1416,11 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ GearPosition : 16|4@1+ (1,0) [0|255] "" XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX -BO_ 2536708353 BAP_LDW_01: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX +BO_ 2536708353 BAP_LDW_01: 2 XXX + SG_ Stream : 0|16@1+ (1,0) [0|65535] "" XXX BO_ 2536708368 BAP_LDW_10: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX + SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From 6086fe94ca750ddf63a2ccd568663a21d34de5fe Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 12 Nov 2023 12:31:38 +0100 Subject: [PATCH 018/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index b16069d59ae..65e17e0ee31 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1417,7 +1417,7 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX BO_ 2536708353 BAP_LDW_01: 2 XXX - SG_ Stream : 0|16@1+ (1,0) [0|65535] "" XXX + SG_ Stream : 0|16@0+ (1,0) [0|65535] "" XXX BO_ 2536708368 BAP_LDW_10: 8 XXX SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX From 7d79317a6b01e5280ad3f2e1601c9674c82fbc3b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 12 Nov 2023 13:56:52 +0100 Subject: [PATCH 019/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 65e17e0ee31..0f654d97f0d 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -1417,10 +1417,10 @@ BO_ 391 EV_Gearshift: 8 XXX SG_ RegenBrakingMode : 12|2@1+ (1,0) [0|3] "" XXX BO_ 2536708353 BAP_LDW_01: 2 XXX - SG_ Stream : 0|16@0+ (1,0) [0|65535] "" XXX + SG_ Stream : 0|16@1+ (1,0) [0|65535] "" XXX BO_ 2536708368 BAP_LDW_10: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|0] "" XXX + SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; From 2a736c283796a93d48c4f4a8a9dea41df0284a40 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Mar 2024 20:58:33 +0100 Subject: [PATCH 020/653] Update common.cc add fcw (magic bytes are wrong right now) --- can/common.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/can/common.cc b/can/common.cc index b1a70fdf3f4..4d7911e173a 100644 --- a/can/common.cc +++ b/can/common.cc @@ -146,7 +146,7 @@ unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const case 0x120: // TSK_06 Drivetrain Coordinator crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; break; - case 0x31E: // TSK_07 Drivetrain Coordinator + case 0x31E: // TSK_07 Drivetrain Coordinator crc ^= (uint8_t[]){0x78, 0x68, 0x3A, 0x31, 0x16, 0x08, 0x4F, 0xDE, 0xF7, 0x35, 0x19, 0xE6, 0x28, 0x2F, 0x59, 0x82}[counter]; break; case 0x121: // Motor_20 Driver Throttle Inputs @@ -167,6 +167,9 @@ unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const case 0x187: // EV_Gearshift "Gear" selection data for EVs with no gearbox crc ^= (uint8_t[]){0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}[counter]; break; + case 0x2A9: // ACC_15 Front Collision Warning + crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; + break; case 0x30C: // ACC_02 Automatic Cruise Control crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; break; From 8cfca5f05b023be9006e1355c97f575539cd9d9f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Mar 2024 21:00:02 +0100 Subject: [PATCH 021/653] Update vw_mqb_2010.dbc --- vw_mqb_2010.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_mqb_2010.dbc b/vw_mqb_2010.dbc index 0f654d97f0d..c1146cd4595 100644 --- a/vw_mqb_2010.dbc +++ b/vw_mqb_2010.dbc @@ -93,6 +93,8 @@ BO_ 679 ACC_13: 8 XXX SG_ ACC_ENG_Texte : 60|2@1+ (1,0) [0|3] "" XXX BO_ 681 ACC_15: 8 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ AWV_Warnung : 16|3@1+ (1,0) [0|7] "" XXX SG_ AWV_Texte : 24|3@1+ (1,0) [0|7] "" XXX SG_ AWV_Status_Anzeige : 32|2@1+ (1,0) [0|3] "" XXX From 34ceb6dbb38ce5e0bbf94132f5ae358f3241bab1 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Tue, 7 May 2024 21:49:26 +0200 Subject: [PATCH 022/653] Create vw_meb.dbc --- vw_meb.dbc | 390 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 390 insertions(+) create mode 100644 vw_meb.dbc diff --git a/vw_meb.dbc b/vw_meb.dbc new file mode 100644 index 00000000000..c402492b1e4 --- /dev/null +++ b/vw_meb.dbc @@ -0,0 +1,390 @@ +VERSION "" + + +NS_ : + NS_DESC_ + CM_ + BA_DEF_ + BA_ + VAL_ + CAT_DEF_ + CAT_ + FILTER + BA_DEF_DEF_ + EV_DATA_ + ENVVAR_DATA_ + SGTYPE_ + SGTYPE_VAL_ + BA_DEF_SGTYPE_ + BA_SGTYPE_ + SIG_TYPE_REF_ + VAL_TABLE_ + SIG_GROUP_ + SIG_VALTYPE_ + SIGTYPE_VALTYPE_ + BO_TX_BU_ + BA_DEF_REL_ + BA_REL_ + BA_DEF_DEF_REL_ + BU_SG_REL_ + BU_EV_REL_ + BU_BO_REL_ + SG_MUL_VAL_ + +BS_: + +BU_: BAP_Tester BedienDisp_vo BedienSG_hi CGS DDA Gateway Gateway_PAG GurtMikrofon OTA_FC ZR_High ZR_LIMU ZR_MIB_TOP_ab_Gen3 ZR_Standard + + +BO_ 870 Blinkmodi_02: 8 Gateway + SG_ BM_ZV_auf : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_ZV_zu : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_DWA_ein : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_DWA_Alarm : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Crash : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Panik : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Not_Bremsung : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_GDO : 19|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BM_Warnblinken : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Taxi_Notalarm : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Telematik : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_links : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_rechts : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ Blinken_li_Fzg_Takt : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ Blinken_re_Fzg_Takt : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ Blinken_li_Kombi_Takt : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ Blinken_re_Kombi_Takt : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BM_NBA_n_codiert_n_aktiv : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BM_NBA_Status : 30|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ BM_WBT_Beleuchtung : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_HD_Oeffnung_angelernt : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BM_Autobahn : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ BM_Rollenmodus_Blinken : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BM_Recas : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Wischblinken : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BM_Telematik_Abbruchgrund : 38|6@1+ (1.0,0.0) [0.0|63] "" Vector__XXX + SG_ BM_PiloPa : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High + +BO_ 259 ESP_03: 8 Gateway + SG_ ESP_03_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ESP_03_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ ESP_VL_FR : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_VR_FR : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_HL_FR : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_HR_FR : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_VL_Radgeschw : 16|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_VR_Radgeschw : 28|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_HL_Radgeschw : 40|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_HR_Radgeschw : 52|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + +BO_ 299 GRA_ACC_01: 8 Gateway + SG_ GRA_ACC_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ GRA_ACC_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ GRA_Hauptschalter : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Abbrechen : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Typ_Hauptschalter : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Limiter : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Tip_Setzen : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Tip_Hoch : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Tip_Runter : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Tip_Wiederaufnahme : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Verstellung_Zeitluecke : 20|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ GRA_Codierung : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ GRA_Fehler : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_LIM_Taste_verfuegbar : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Tip_Stufe_2 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ GRA_Typ_Bedienteil : 27|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ GRA_TravelAssist : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ GRA_reserveByte4 : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ GRA_reserveByte5 : 32|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ GRA_reserveByte6 : 40|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ GRA_reserveByte7 : 48|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ GRA_reserveByte8 : 56|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + +BO_ 134 LWI_01: 8 Gateway + SG_ LWI_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ LWI_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LWI_Sensorstatus : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LWI_MFL_Abschaltung : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LWI_QBit_Lenkradwinkel : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_Lenkradwinkel : 16|13@1+ (0.1,0) [0.0|800.0] "Unit_DegreOfArc" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradwinkel : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradw_Geschw : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LWI_Lenkradw_Geschw : 31|9@1+ (5,0) [0|2500] "Unit_DegreOfArcPerSecon" OTA_FC,ZR_High + SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX + +BO_ 420 EA_01: 8 Gateway + SG_ EA_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ EA_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ EA_Parken_beibehalten_HMS : 12|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ EA_Warnruckprofil : 28|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ EA_eCall_Anf : 31|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ EA_Funktionsstatus : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ EA_Gurtstraffer_Anf : 44|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ EA_Anforderung_HMS : 48|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX + +BO_ 289 Motor_20: 8 Gateway + SG_ Motor_20_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Motor_20_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_Fahrpedalrohwert_01 : 12|8@1+ (0.4,0) [0.0|101.6] "Unit_PerCent" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_QBit_Fahrpedalwerte_01 : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_Fahrpedalgradient : 21|8@1+ (25,0) [0|6350] "Unit_PerCentPerSecon" OTA_FC,ZR_High + SG_ MO_Sig_Fahrpedalgradient : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_rel_Saugrohrdruck : 30|6@1+ (18,0) [0|1116] "Unit_MilliBar" Vector__XXX + SG_ MO_rel_Saugrohrdruck_gem_err : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Moment_im_Leerlauf : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_Schubabschaltung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_StartStopp_StoppVorbereitung : 39|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ MO_Solldrehz_Leerlauf : 40|8@1+ (10,0) [0|2540] "Unit_MinutInver" Vector__XXX + SG_ MO_Entkopplung_Sollschlupf : 48|7@1+ (20,0) [0|2480] "Unit_MinutInver" Vector__XXX + SG_ MO_temporaere_Fahrerabwesenheit : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ TSK_a_Soll_gradientenbegrenzt : 57|7@1+ (0.1,-7.2) [-7.2|5.4] "Unit_MeterPerSeconSquar" Vector__XXX + +BO_ 262 ESP_05: 8 Gateway + SG_ ESP_05_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ESP_05_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ ESP_QBit_Bremsdruck : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ESP_QBit_Fahrer_bremst : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Schwelle_Unterdruck : 14|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ ESP_Bremsdruck : 16|10@1+ (0.3,-30) [-30.0|276.6] "Unit_Bar" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ESP_Fahrer_bremst : 26|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Lenkeingriff_ADS : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ECD_Fehler : 32|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ECD_nicht_verfuegbar : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Status_Bremsentemp : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Autohold_Standby : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_HDC_Standby : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_HBA_aktiv : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Prefill_ausgeloest : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Rueckwaertsfahrt_erkannt : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Status_Anfahrhilfe : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESP_HDC_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESP_StartStopp_Info : 42|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ ESP_Eingr_HL : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Eingr_HR : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Eingr_VL : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Eingr_VR : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_BKV_Unterdruck : 48|8@1+ (4,0) [4|1012] "Unit_MilliBar" Vector__XXX + SG_ ESP_Autohold_aktiv : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESP_FStatus_Anfahrhilfe : 57|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Verz_EPB_aktiv : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESC_Bremslicht : 59|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_Verzoeg_EPB_verf : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Status_Bremsdruck : 61|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Anforderung_EPB : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 958 Motor_14: 8 Gateway + SG_ Motor_14_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Motor_14_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_StartStopp_Status : 12|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi + SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ MO_Freig_Reku : 16|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Kl_75 : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_Kl_50 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_Gangposition : 20|4@1+ (1.0,0.0) [0.0|15] "" OTA_FC,ZR_High + SG_ MO_StartStopp_Fahrerwunsch : 24|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ MO_HYB_Fahrbereitschaft : 26|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Ext_E_Fahrt_aktiv : 27|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ MO_Fahrer_bremst : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_QBit_Fahrer_bremst : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_BLS : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_Konsistenz_Bremsped : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_KomFehler_ESP : 32|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Klima_Eingr : 33|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Aussp_Anlass : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Freig_Anlass : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Kuppl_schalter : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_Interlock : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Motor_laeuft : 39|1@1+ (1.0,0.0) [0.0|1] "" DDA + SG_ MO_Kickdown : 40|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ MO_QBit_KL_75 : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_EKlKomLeiRed : 42|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Handshake_STH : 44|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_BKV_Unterdruckwarnung : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Freigabe_Segeln : 46|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_PTC_Status : 47|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ MO_QBit_Gangposition : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Signalquelle_Gangposition : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Remotestart_Betrieb : 52|1@1+ (1.0,0.0) [0.0|1] "" DDA + SG_ MO_Remotestart_moeglich : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Text_Geschw_red : 54|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_FMAus_aktiv : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_FMAus_Startvariante : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_BMS_NV_Anf_stuetzen : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Zylinderabschaltung : 59|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ MO_HYB_VM_aktiv : 61|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 779 Kombi_01: 8 Gateway + SG_ KBI_ABS_Lampe : 0|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_ESP_Lampe : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_BKL_Lampe : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_Airbag_Lampe : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_SILA_gueltig : 4|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_Lenkung_Lampe : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Vorglueh_System_Lampe : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_NV_in_Anzeige : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ Kombi_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KBI_Anzeigestatus_ACC : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_Anzeigestatus_GRA : 13|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ KBI_Tankwarnung : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KBI_MFA_v_Einheit_01 : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KBI_im_Stellgliedtest : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_Anzeigefehler_LDW : 19|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ KBI_Tankwarnung_ungueltig : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KBI_Handbremse : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_V_Digital : 24|9@1+ (1,0) [0|511] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KBI_PLA_in_Anzeige : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_Anzeigefehler_NV : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_Anzeigestatus_LIM : 35|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ KBI_ARA_in_Anzeige : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_Taster_Lift : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_Taster_Fahrwerk : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_GRA_Hauptschalter : 40|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ KBI_angez_Geschw : 48|10@1+ (0.32,0) [0.00|325.12] "Unit_KiloMeterPerHour" BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KBI_Einheit_Tacho : 58|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ KBI_Konsistenz_ACC : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KBI_Fehler_Anzeige_ACC : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ KBI_Anzeigefehler_SWA : 61|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ KBI_Systemstatus : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + +BO_ 173 Getriebe_11: 8 Gateway + SG_ Getriebe_11_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Getriebe_11_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ GE_MMom_Soll_02 : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ GE_MMom_Vorhalt_02 : 22|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ GE_Uefkt : 32|10@1+ (0.1,0) [0.0|102.2] "" Vector__XXX + SG_ GE_Fahrstufe : 42|4@1+ (1.0,0.0) [0.0|15] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ GE_reserv_Fahrstufe : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GE_Schaltablauf : 47|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ GE_Uefkt_unplausibel : 49|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ GE_MMom_Status_02 : 50|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ GE_Status_Kraftschluss : 53|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ GE_MMom_Status : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ GE_Freig_MMom_Vorhalt : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ GE_Verbot_Ausblendung : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ GE_Zielgang : 60|4@1+ (1.0,0.0) [0.0|15] "" OTA_FC,ZR_High + +BO_ 1411 ZV_02: 8 Gateway + SG_ BCM_FH_Freigabe : 12|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo + SG_ BCM_Komfortfkt_Freigabe : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_HSK_Freigabe : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_Verdeck_Freigabe : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_verriegelt_intern_ist : 16|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High + SG_ ZV_verriegelt_extern_ist : 17|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High + SG_ ZV_verriegelt_intern_soll : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_verriegelt_extern_soll : 19|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_gesafet_extern_ist : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_gesafet_extern_soll : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ZV_Einzeltuerentriegelung : 22|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ZV_Heckeinzelentriegelung : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ZV_FT_offen : 24|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_BT_offen : 25|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HFS_offen : 26|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HBFS_offen : 27|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HD_offen : 28|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HS_offen : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ IRUE_aktiv : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ DWA_aktiv : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HD_Hauptraste : 32|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ HD_Vorraste : 33|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FFB_CarFinder : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FFB_Komfortoeffnen : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FFB_Komfortschliessen : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ZV_Schluessel_Zugang : 42|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ ZV_SafeFunktion_aktiv : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FBS_Warn_Schluessel_Batt : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_Oeffnungsmodus : 48|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ HFS_verriegelt : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ HFS_gesafet : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HBFS_verriegelt : 52|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ HBFS_gesafet : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ZV_ist_Zustand_verfuegbar : 54|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ IRUE_Taster_Fkts_LED : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_Tankklappe_offen : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_Rollo_auf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_Rollo_zu : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_SAD_auf : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_SAD_zu : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM_Tankklappensteller_Fehler : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ZV_verriegelt_soll : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 1312 Airbag_02: 8 Gateway + SG_ Airbag_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Airbag_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_Rollover : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_FGS : 19|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_Front_Beifahrer : 20|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_Front_Fahrer : 21|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_Heck_Beifahrer : 22|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Anprall_Heck_Fahrer : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ AB_Wickelklappung_Reihe2_MI : 24|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ AB_Belegung_VB : 26|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Abschaltanf_SIH_BF : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ AB_Anprall_Seite_Fahrer : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SC_PAO_Schriftzug_Anf : 30|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ SC_PAO_ON_Anf : 32|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ SC_PAO_OFF_Anf : 34|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ AB_Crashschwere : 36|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ AB_Anforderung_USM : 39|1@1+ (1.0,0.0) [0.0|1] "" ZR_Standard + SG_ AB_Gurtschloss_FA : 40|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High + SG_ AB_Gurtschloss_BF : 42|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_FA : 44|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_MI : 46|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_BF : 48|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe3_FA : 50|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High + SG_ AB_Gurtschloss_Reihe3_MI : 52|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High + SG_ AB_Gurtschloss_Reihe3_BF : 54|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High + SG_ AB_Sitzpos_Sens_FA : 56|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ AB_Sitzpos_Sens_BF : 58|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ AB_Wickelklappung_Reihe2_BF : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + +BO_ 783 SWA_01: 8 Gateway + SG_ SWA_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ SWA_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ SWA_Anzeigen : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ SWA_Blindheit_erkannt : 16|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SWA_rel_Nichtverf : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SWA_rel_Fehler : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_Sta_aktiv : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_Sta_passiv : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_FT_RueckLED : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ASW_Status : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ SWA_Standziele_li : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_Kolonne_li : 25|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SWA_Infostufe_SWA_li : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_Warnung_SWA_li : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ASW_Warnung_FS : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ASW_Warnung_BFS : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ASW_Kombitexte : 30|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ SWA_Kolonne_mi : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ASW_Modus : 34|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ SWA_Modus : 37|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ SWA_Standziele_re : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SWA_Kolonne_re : 41|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ SWA_Infostufe_SWA_re : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_Warnung_SWA_re : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HRE_Anzeigetexte : 44|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ SWA_Status_02 : 48|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ Heckradar_Kombitexte : 56|5@1+ (1.0,0.0) [0.0|31] "" ZR_High + SG_ RCTA_Kombitexte : 61|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + +BO_ 605 KLR_01: 8 Gateway + SG_ KLR_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KLR_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KLR_Fehler : 12|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KLR_ResponseError : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KLR_Lokalaktiv : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KLR_Fehler_Codierung : 15|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ KLR_Touchintensitaet_1 : 16|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchintensitaet_2 : 24|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchintensitaet_3 : 32|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchauswertung : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High \ No newline at end of file From 32e854d90fb5c70bb3de6a3d821d99c7c097532c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 8 May 2024 18:06:31 +0200 Subject: [PATCH 023/653] Update vw_meb.dbc further preparing for MEB, dbc is not correct yet --- vw_meb.dbc | 89 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 70 insertions(+), 19 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index c402492b1e4..342b49eb82d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -67,8 +67,8 @@ BO_ 870 Blinkmodi_02: 8 Gateway SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High BO_ 259 ESP_03: 8 Gateway - SG_ ESP_03_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ ESP_03_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ ESP_VL_FR : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC SG_ ESP_VR_FR : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC SG_ ESP_HL_FR : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC @@ -79,8 +79,8 @@ BO_ 259 ESP_03: 8 Gateway SG_ ESP_HR_Radgeschw : 52|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 BO_ 299 GRA_ACC_01: 8 Gateway - SG_ GRA_ACC_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ GRA_ACC_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ GRA_Hauptschalter : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ GRA_Abbrechen : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ GRA_Typ_Hauptschalter : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High @@ -103,8 +103,8 @@ BO_ 299 GRA_ACC_01: 8 Gateway SG_ GRA_reserveByte8 : 56|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX BO_ 134 LWI_01: 8 Gateway - SG_ LWI_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ LWI_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ LWI_Sensorstatus : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ LWI_MFL_Abschaltung : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High @@ -116,8 +116,8 @@ BO_ 134 LWI_01: 8 Gateway SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX BO_ 420 EA_01: 8 Gateway - SG_ EA_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ EA_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ EA_Parken_beibehalten_HMS : 12|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX SG_ EA_Warnruckprofil : 28|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX SG_ EA_eCall_Anf : 31|2@1+ (1.0,0.0) [0.0|3] "" ZR_High @@ -127,8 +127,8 @@ BO_ 420 EA_01: 8 Gateway SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX BO_ 289 Motor_20: 8 Gateway - SG_ Motor_20_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Motor_20_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ MO_Fahrpedalrohwert_01 : 12|8@1+ (0.4,0) [0.0|101.6] "Unit_PerCent" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ MO_QBit_Fahrpedalwerte_01 : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ MO_Fahrpedalgradient : 21|8@1+ (25,0) [0|6350] "Unit_PerCentPerSecon" OTA_FC,ZR_High @@ -144,8 +144,8 @@ BO_ 289 Motor_20: 8 Gateway SG_ TSK_a_Soll_gradientenbegrenzt : 57|7@1+ (0.1,-7.2) [-7.2|5.4] "Unit_MeterPerSeconSquar" Vector__XXX BO_ 262 ESP_05: 8 Gateway - SG_ ESP_05_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ ESP_05_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ ESP_QBit_Bremsdruck : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ ESP_QBit_Fahrer_bremst : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ ESP_Schwelle_Unterdruck : 14|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX @@ -177,8 +177,8 @@ BO_ 262 ESP_05: 8 Gateway SG_ ESP_Anforderung_EPB : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX BO_ 958 Motor_14: 8 Gateway - SG_ Motor_14_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Motor_14_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ MO_StartStopp_Status : 12|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High @@ -348,8 +348,8 @@ BO_ 1312 Airbag_02: 8 Gateway SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1.0,0.0) [0.0|3] "" ZR_High BO_ 783 SWA_01: 8 Gateway - SG_ SWA_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ SWA_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ SWA_Anzeigen : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High SG_ SWA_Blindheit_erkannt : 16|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ SWA_rel_Nichtverf : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX @@ -378,8 +378,8 @@ BO_ 783 SWA_01: 8 Gateway SG_ RCTA_Kombitexte : 61|3@1+ (1.0,0.0) [0.0|7] "" ZR_High BO_ 605 KLR_01: 8 Gateway - SG_ KLR_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ KLR_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ KLR_Fehler : 12|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ KLR_ResponseError : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ KLR_Lokalaktiv : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX @@ -387,4 +387,55 @@ BO_ 605 KLR_01: 8 Gateway SG_ KLR_Touchintensitaet_1 : 16|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX SG_ KLR_Touchintensitaet_2 : 24|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX SG_ KLR_Touchintensitaet_3 : 32|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX - SG_ KLR_Touchauswertung : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High \ No newline at end of file + SG_ KLR_Touchauswertung : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + +BO_ 294 HCA_01: 8 Frontsensorik + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [15|30] "Unit_Hertz" Vector__XXX + SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX + SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar + SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ HCA_01_Enable : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Available : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX + SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar + +BO_ 159 LH_EPS_03: 8 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_DSR_Status : 12|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_Berechneter_LW : 16|12@1+ (0.15,0) [0|613.95] "Unit_DegreOfArc" XXX + SG_ EPS_BLW_QBit : 30|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_VZ_BLW : 31|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_HCA_Status : 32|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_Lenkmoment : 40|10@1+ (1,0) [0|8] "Unit_centiNewtoMeter" XXX + SG_ EPS_Lenkmoment_QBit : 54|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_VZ_Lenkmoment : 55|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_Lenkungstyp : 60|4@1+ (1,0) [0|15] "" XXX + +BO_ 919 LDW_02: 8 XXX + SG_ LDW_Gong : 12|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_SW_Warnung_links : 14|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_SW_Warnung_rechts : 15|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Texte : 16|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Seite_DLCTLC : 20|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Lernmodus : 21|3@1+ (1,0) [0|7] "" XXX + SG_ LDW_Anlaufsp_VLR : 24|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Vib_Amp_VLR : 28|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Anlaufzeit_VLR : 32|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Lernmodus_rechts : 36|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_Lernmodus_links : 38|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_DLC : 40|8@1+ (0.01,-1.25) [-1.25|1.25] "Unit_Meter" XXX + SG_ LDW_TLC : 48|5@1+ (0.1,0) [0|3] "Unit_Secon" XXX + SG_ LDW_Warnung_links : 56|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Warnung_rechts : 57|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Codierinfo_fuer_VLR : 58|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_Frontscheibenheizung_aktiv : 60|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Status_LED_gelb : 61|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX From 4cff76c6f50db8d46bd6157258697fe94eb9c8d5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Jun 2024 16:55:51 +0200 Subject: [PATCH 024/653] Update vw_meb.dbc add signal for car start info kl15 --- vw_meb.dbc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 342b49eb82d..d23358ca931 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -439,3 +439,24 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_Status_LED_gelb : 61|1@1+ (1,0) [0|1] "" XXX SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX + +BO_ 960 Klemmen_Status_01: 4 Gateway + SG_ Klemmen_Status_01_CRC : 0|8@1+ (1,0) [0|255] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ Klemmen_Status_01_BZ : 8|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ RSt_Fahrerhinweise : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_S : 16|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_15 : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,DDA,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_X : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_50_Startanforderung : 19|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_Betrieb : 20|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_Infotainment : 21|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_KL15_Anf : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_MO_Start : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Warn_P1_ZST_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Warn_P2_ZST_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_1 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_2 : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Ausparken_Betrieb : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_4 : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_5 : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_6 : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard From 0ea4abde009df16b3ed4aff6abb29d77043d122f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Jun 2024 20:14:24 +0200 Subject: [PATCH 025/653] Update vw_meb.dbc add bcm_01 --- vw_meb.dbc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index d23358ca931..1eb7767715e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -460,3 +460,39 @@ BO_ 960 Klemmen_Status_01: 4 Gateway SG_ KST_Fahrerhinweis_4 : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ KST_Fahrerhinweis_5 : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ KST_Fahrerhinweis_6 : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 1626 BCM_01: 8 Gateway + SG_ BCM_Bremsbelag_Sensor : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BCM_Bremsfluessigkeit_Sensor : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Licht_Warn : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_Waschwasser_Sensor : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BCM_Kuehlmittel_Sensor : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Kl_15_HW_erkannt : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_Kl_15_Sig_HW_erkannt : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_Kuehlmittel_Sensor_02 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Hinweis_Lichtnachlauf : 20|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_Offroad_Taste : 21|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_Hybrid_StSt_Taste_Fehler : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM_Hybrid_StartStopp_Taste : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Warnblink_Taster : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Valet_Parking_Taster : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_LDS_Stellung : 27|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ BCM1_Rueckfahrlicht_Schalter : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_MH_Schalter : 31|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High + SG_ BCM1_MH_WIV_Schalter : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM_Eco_Charisma_Taste : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_NV_Taster : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_AFS_Lampe : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Reisemodus_Texte : 36|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ BCM1_Lichtwarn_Texte : 38|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ Gong_TFL_Umschaltung : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ UGDO_Function_01 : 41|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ APS_Tongeber_defekt : 44|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_EasyEntry_Status : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Lenksaeule_aktiv : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_St_SW_Diebstahl_links : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_St_SW_Diebstahl_rechts : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ISP_Dimmung_ASP_02 : 49|6@1+ (0.0226,0) [0.0000|1.4012] "Unit_Volt" Vector__XXX + SG_ BCM1_Schluesselsuche_Anf : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_Fahrlicht_Hinweis : 62|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM_HDF_betaetigt : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From 210bb68ce9f15f93c07a0e8fe94c40696bf6dfbc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:32:35 +0200 Subject: [PATCH 026/653] Update vw_meb.dbc remove non existing signals --- vw_meb.dbc | 204 ----------------------------------------------------- 1 file changed, 204 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1eb7767715e..7f33ad599b0 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -65,18 +65,6 @@ BO_ 870 Blinkmodi_02: 8 Gateway SG_ BM_Telematik_Abbruchgrund : 38|6@1+ (1.0,0.0) [0.0|63] "" Vector__XXX SG_ BM_PiloPa : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High - -BO_ 259 ESP_03: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ ESP_VL_FR : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_VR_FR : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_HL_FR : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_HR_FR : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_VL_Radgeschw : 16|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_VR_Radgeschw : 28|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_HL_Radgeschw : 40|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_HR_Radgeschw : 52|12@1+ (0.1,0) [0.0|409.2] "Unit_KiloMeterPerHour" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 BO_ 299 GRA_ACC_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -126,132 +114,6 @@ BO_ 420 EA_01: 8 Gateway SG_ EA_Anforderung_HMS : 48|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX -BO_ 289 Motor_20: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MO_Fahrpedalrohwert_01 : 12|8@1+ (0.4,0) [0.0|101.6] "Unit_PerCent" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_QBit_Fahrpedalwerte_01 : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_Fahrpedalgradient : 21|8@1+ (25,0) [0|6350] "Unit_PerCentPerSecon" OTA_FC,ZR_High - SG_ MO_Sig_Fahrpedalgradient : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_rel_Saugrohrdruck : 30|6@1+ (18,0) [0|1116] "Unit_MilliBar" Vector__XXX - SG_ MO_rel_Saugrohrdruck_gem_err : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Moment_im_Leerlauf : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_Schubabschaltung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_StartStopp_StoppVorbereitung : 39|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ MO_Solldrehz_Leerlauf : 40|8@1+ (10,0) [0|2540] "Unit_MinutInver" Vector__XXX - SG_ MO_Entkopplung_Sollschlupf : 48|7@1+ (20,0) [0|2480] "Unit_MinutInver" Vector__XXX - SG_ MO_temporaere_Fahrerabwesenheit : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ TSK_a_Soll_gradientenbegrenzt : 57|7@1+ (0.1,-7.2) [-7.2|5.4] "Unit_MeterPerSeconSquar" Vector__XXX - -BO_ 262 ESP_05: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ ESP_QBit_Bremsdruck : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ESP_QBit_Fahrer_bremst : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Schwelle_Unterdruck : 14|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ ESP_Bremsdruck : 16|10@1+ (0.3,-30) [-30.0|276.6] "Unit_Bar" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ESP_Fahrer_bremst : 26|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Lenkeingriff_ADS : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ECD_Fehler : 32|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ECD_nicht_verfuegbar : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Status_Bremsentemp : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Autohold_Standby : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_HDC_Standby : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_HBA_aktiv : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Prefill_ausgeloest : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Rueckwaertsfahrt_erkannt : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Status_Anfahrhilfe : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESP_HDC_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESP_StartStopp_Info : 42|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ ESP_Eingr_HL : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_Eingr_HR : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_Eingr_VL : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_Eingr_VR : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_BKV_Unterdruck : 48|8@1+ (4,0) [4|1012] "Unit_MilliBar" Vector__XXX - SG_ ESP_Autohold_aktiv : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESP_FStatus_Anfahrhilfe : 57|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Verz_EPB_aktiv : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESC_Bremslicht : 59|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_Verzoeg_EPB_verf : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Status_Bremsdruck : 61|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Anforderung_EPB : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - -BO_ 958 Motor_14: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MO_StartStopp_Status : 12|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi - SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ MO_Freig_Reku : 16|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Kl_75 : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_Kl_50 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_Gangposition : 20|4@1+ (1.0,0.0) [0.0|15] "" OTA_FC,ZR_High - SG_ MO_StartStopp_Fahrerwunsch : 24|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ MO_HYB_Fahrbereitschaft : 26|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Ext_E_Fahrt_aktiv : 27|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ MO_Fahrer_bremst : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_QBit_Fahrer_bremst : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_BLS : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_Konsistenz_Bremsped : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_KomFehler_ESP : 32|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Klima_Eingr : 33|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Aussp_Anlass : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Freig_Anlass : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Kuppl_schalter : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_Interlock : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Motor_laeuft : 39|1@1+ (1.0,0.0) [0.0|1] "" DDA - SG_ MO_Kickdown : 40|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ MO_QBit_KL_75 : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_EKlKomLeiRed : 42|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Handshake_STH : 44|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_BKV_Unterdruckwarnung : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Freigabe_Segeln : 46|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_PTC_Status : 47|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ MO_QBit_Gangposition : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Signalquelle_Gangposition : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Remotestart_Betrieb : 52|1@1+ (1.0,0.0) [0.0|1] "" DDA - SG_ MO_Remotestart_moeglich : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Text_Geschw_red : 54|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_FMAus_aktiv : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_FMAus_Startvariante : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_BMS_NV_Anf_stuetzen : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Zylinderabschaltung : 59|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ MO_HYB_VM_aktiv : 61|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - -BO_ 779 Kombi_01: 8 Gateway - SG_ KBI_ABS_Lampe : 0|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_ESP_Lampe : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_BKL_Lampe : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_Airbag_Lampe : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_SILA_gueltig : 4|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_Lenkung_Lampe : 5|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KBI_Vorglueh_System_Lampe : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_NV_in_Anzeige : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ Kombi_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ KBI_Anzeigestatus_ACC : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_Anzeigestatus_GRA : 13|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ KBI_Tankwarnung : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KBI_MFA_v_Einheit_01 : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KBI_im_Stellgliedtest : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_Anzeigefehler_LDW : 19|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ KBI_Tankwarnung_ungueltig : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KBI_Handbremse : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_V_Digital : 24|9@1+ (1,0) [0|511] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KBI_PLA_in_Anzeige : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_Anzeigefehler_NV : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_Anzeigestatus_LIM : 35|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ KBI_ARA_in_Anzeige : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_Taster_Lift : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_Taster_Fahrwerk : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_GRA_Hauptschalter : 40|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ KBI_angez_Geschw : 48|10@1+ (0.32,0) [0.00|325.12] "Unit_KiloMeterPerHour" BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KBI_Einheit_Tacho : 58|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ KBI_Konsistenz_ACC : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KBI_Fehler_Anzeige_ACC : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ KBI_Anzeigefehler_SWA : 61|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ KBI_Systemstatus : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - BO_ 173 Getriebe_11: 8 Gateway SG_ Getriebe_11_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ Getriebe_11_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX @@ -347,36 +209,6 @@ BO_ 1312 Airbag_02: 8 Gateway SG_ AB_Wickelklappung_Reihe2_BF : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1.0,0.0) [0.0|3] "" ZR_High -BO_ 783 SWA_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ SWA_Anzeigen : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ SWA_Blindheit_erkannt : 16|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SWA_rel_Nichtverf : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SWA_rel_Fehler : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_Sta_aktiv : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_Sta_passiv : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_FT_RueckLED : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ASW_Status : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ SWA_Standziele_li : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_Kolonne_li : 25|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SWA_Infostufe_SWA_li : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_Warnung_SWA_li : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ASW_Warnung_FS : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ASW_Warnung_BFS : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ASW_Kombitexte : 30|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ SWA_Kolonne_mi : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ASW_Modus : 34|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ SWA_Modus : 37|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ SWA_Standziele_re : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SWA_Kolonne_re : 41|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SWA_Infostufe_SWA_re : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_Warnung_SWA_re : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HRE_Anzeigetexte : 44|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ SWA_Status_02 : 48|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ Heckradar_Kombitexte : 56|5@1+ (1.0,0.0) [0.0|31] "" ZR_High - SG_ RCTA_Kombitexte : 61|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - BO_ 605 KLR_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX @@ -460,39 +292,3 @@ BO_ 960 Klemmen_Status_01: 4 Gateway SG_ KST_Fahrerhinweis_4 : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ KST_Fahrerhinweis_5 : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard SG_ KST_Fahrerhinweis_6 : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - -BO_ 1626 BCM_01: 8 Gateway - SG_ BCM_Bremsbelag_Sensor : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BCM_Bremsfluessigkeit_Sensor : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Licht_Warn : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_Waschwasser_Sensor : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BCM_Kuehlmittel_Sensor : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Kl_15_HW_erkannt : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_Kl_15_Sig_HW_erkannt : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_Kuehlmittel_Sensor_02 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Hinweis_Lichtnachlauf : 20|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_Offroad_Taste : 21|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_Hybrid_StSt_Taste_Fehler : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM_Hybrid_StartStopp_Taste : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Warnblink_Taster : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Valet_Parking_Taster : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_LDS_Stellung : 27|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ BCM1_Rueckfahrlicht_Schalter : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_MH_Schalter : 31|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High - SG_ BCM1_MH_WIV_Schalter : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM_Eco_Charisma_Taste : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_NV_Taster : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_AFS_Lampe : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Reisemodus_Texte : 36|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ BCM1_Lichtwarn_Texte : 38|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ Gong_TFL_Umschaltung : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ UGDO_Function_01 : 41|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ APS_Tongeber_defekt : 44|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_EasyEntry_Status : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Lenksaeule_aktiv : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_St_SW_Diebstahl_links : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_St_SW_Diebstahl_rechts : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ISP_Dimmung_ASP_02 : 49|6@1+ (0.0226,0) [0.0000|1.4012] "Unit_Volt" Vector__XXX - SG_ BCM1_Schluesselsuche_Anf : 55|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_Fahrlicht_Hinweis : 62|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_HDF_betaetigt : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From b270dfb255214c588c7f2b2bfd49ed4b46b9496e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:50:24 +0200 Subject: [PATCH 027/653] Update vw_meb.dbc adapt ign signal --- vw_meb.dbc | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7f33ad599b0..40a5cf0665f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -273,22 +273,6 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX BO_ 960 Klemmen_Status_01: 4 Gateway - SG_ Klemmen_Status_01_CRC : 0|8@1+ (1,0) [0|255] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ Klemmen_Status_01_BZ : 8|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ RSt_Fahrerhinweise : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZAS_Kl_S : 16|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZAS_Kl_15 : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,DDA,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZAS_Kl_X : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZAS_Kl_50_Startanforderung : 19|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BCM_Remotestart_Betrieb : 20|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZAS_Kl_Infotainment : 21|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BCM_Remotestart_KL15_Anf : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BCM_Remotestart_MO_Start : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Warn_P1_ZST_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Warn_P2_ZST_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Fahrerhinweis_1 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Fahrerhinweis_2 : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BCM_Ausparken_Betrieb : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Fahrerhinweis_4 : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Fahrerhinweis_5 : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ KST_Fahrerhinweis_6 : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_15a : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ZAS_Kl_15b : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ZAS_Kl_15c : 19|1@1+ (1.0,0.0) [0.0|1] "" XXX From 2e29d921828c98b680f955fb33b0e7cc68965fb6 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 18:53:12 +0200 Subject: [PATCH 028/653] Update vw_meb.dbc fix ign --- vw_meb.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 40a5cf0665f..f07478e4ae5 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -273,6 +273,6 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX BO_ 960 Klemmen_Status_01: 4 Gateway - SG_ ZAS_Kl_15a : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ZAS_Kl_15b : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ZAS_Kl_15c : 19|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ZAS_Kl_15a : 16|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ZAS_Kl_15c : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX From b419a531a0df832e9a01fda5c531e451d7e7e774 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 19:56:55 +0200 Subject: [PATCH 029/653] Update vw_meb.dbc add potential door signals --- vw_meb.dbc | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 209 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index f07478e4ae5..40a6208944f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -272,6 +272,215 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX +BO_ 977 TSG_BT_01: 8 Gateway + SG_ BT_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BT_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BT_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Schluesselschalter_auf : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Schluesselschalter_zu : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_EC_Spiegel_Helligkeit : 10|5@1+ (3.125,0) [0.000|96.875] "Unit_PerCent" OTA_FC,ZR_High + SG_ BT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" ZR_High + SG_ BT_Tuer_Status : 16|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High + SG_ BT_TSG_hinten_verbaut : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Sp_Blk_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BT_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_Kisi_Fehler : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_Schliesstaster : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BT_SP_ausgerastet : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_SP_lr_aktiv : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_SP_ht_aktiv : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_SP_Heizung_aktiv : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Tuer_Status_QBit : 48|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BFS_Status_eTAG : 49|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ BT_TCR_Mode_aktiv : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_SP_Heizung_Status : 55|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ ASW_Warnung_aktiv_BFS : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_FH_Pos_oben : 57|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BT_Tuerschloss_defekt : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Tueroeffnen_Warnung : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BT_Lock_Taster_inv : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_Schluesselschalter_zu_inv : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_SWA_HMI_defekt : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BT_ASW_HMI_defekt : 63|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + +BO_ 1451 TSG_BT_03: 8 Gateway + SG_ TSG_FlHz_BFS_NTC_A : 48|7@1+ (1,-40) [-40|80] "Unit_DegreCelsi" ZR_High + SG_ TSG_FlHz_BFS_FnAbbruchHzKreis_A : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ TSG_FlHz_BFS_NTC_B : 56|7@1+ (1,-40) [-40|80] "Unit_DegreCelsi" ZR_High + SG_ TSG_FlHz_BFS_FnAbbruchHzKreis_B : 63|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + +BO_ 976 TSG_FT_01: 8 Gateway + SG_ FT_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ FT_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FT_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Schluesselschalter_auf : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Schluesselschalter_zu : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_IRUE_Taste : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_HD_Taste : 11|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FT_TD_Taste_Fehler : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_TD_Taste : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SSR_Temp_Freigabe : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" OTA_FC,ZR_High + SG_ FT_HD_Taste_2 : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_TSG_hinten_verbaut : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Sp_Blk_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ FT_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ASW_HMI_defekt : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FT_Schliesstaster : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FT_SP_ausgerastet : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_SP_lr_aktiv : 43|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FT_SP_ht_aktiv : 44|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ ASW_wakeup : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FT_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Kisi_li_aktiv : 48|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ FT_Kisi_re_aktiv : 49|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ FT_Kisi_Taster_li : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Kisi_Taster_re : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_BFS_Fond_Freigabe : 52|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Kisi_Fehler : 53|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ FT_Daemmglas : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_SP_Heizung_Status : 55|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ ASW_Warnung_aktiv_FS : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_FH_Pos_oben : 57|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ FT_Tuerschloss_defekt : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_SWA_Taster : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SWA_HMI_Diagnose : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ FS_Status_eTAG : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 975 TSG_HBFS_01: 8 Gateway + SG_ HBFS_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ HBFS_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Heckrollotaster_betaetigt : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Tuerschloss_defekt : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_HFS_AutoHoch : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_HFS_AutoTief : 11|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_HFS_ManHoch : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_HFS_ManTief : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Tuer_Status : 14|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High + SG_ HBFS_SAD_Schalter : 16|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ HBFS_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ HBFS_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HBFS_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Tueroeffnen_Warnung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HBFS_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ ASW_Warnung_aktiv_HBFS : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ HBFS_Seitenrollo_hoch : 42|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ HBFS_Seitenrollo_tief : 43|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ HBFS_Status_KiSi : 44|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ SSR_HBFS_Pos_Unten : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHBFS_M_Taste : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHBFS_Pos1 : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHBFS_Pos2 : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHBFS_Pos3 : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_MRollo_Schalter : 52|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ HBFS_Lock_Taster_inv : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Status_KiSi_inv : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HBFS_Status_eTAG : 57|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ HBFS_Tuer_Status_QBit : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HBFS_TIG_betaetigt_schliessen : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + +BO_ 974 TSG_HFS_01: 8 Gateway + SG_ HFS_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ HFS_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Heckrollotaster_betaetigt : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Tuerschloss_defekt : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_HBFS_AutoHoch : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_HBFS_AutoTief : 11|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_HBFS_ManHoch : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_HBFS_ManTief : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Tuer_Status : 14|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High + SG_ HFS_SAD_Schalter : 16|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ HFS_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ HFS_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Tueroeffnen_Warnung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HFS_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ ASW_Warnung_aktiv_HFS : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ HFS_Seitenrollo_hoch : 42|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ HFS_Seitenrollo_tief : 43|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ HFS_Status_KiSi : 44|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High + SG_ SSR_HFS_Pos_Unten : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHFS_M_Taste : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHFS_Pos1 : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHFS_Pos2 : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MTHFS_Pos3 : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_MRollo_Schalter : 52|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ HFS_Lock_Taster_inv : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ HFS_Status_eTAG : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ HFS_Tuer_Status_QBit : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ HFS_TCR_Mode_aktiv : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + BO_ 960 Klemmen_Status_01: 4 Gateway SG_ ZAS_Kl_15a : 16|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX From 5c08b158724a5a4f36151f4e5c3400c95f42ed65 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 19:58:29 +0200 Subject: [PATCH 030/653] Update vw_meb.dbc --- vw_meb.dbc | 209 ----------------------------------------------------- 1 file changed, 209 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 40a6208944f..f07478e4ae5 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -272,215 +272,6 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX -BO_ 977 TSG_BT_01: 8 Gateway - SG_ BT_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BT_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BT_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Schluesselschalter_auf : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Schluesselschalter_zu : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_EC_Spiegel_Helligkeit : 10|5@1+ (3.125,0) [0.000|96.875] "Unit_PerCent" OTA_FC,ZR_High - SG_ BT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" ZR_High - SG_ BT_Tuer_Status : 16|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High - SG_ BT_TSG_hinten_verbaut : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Sp_Blk_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BT_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_Kisi_Fehler : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_Schliesstaster : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BT_SP_ausgerastet : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_SP_lr_aktiv : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_SP_ht_aktiv : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_SP_Heizung_aktiv : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Tuer_Status_QBit : 48|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BFS_Status_eTAG : 49|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ BT_TCR_Mode_aktiv : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_SP_Heizung_Status : 55|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ ASW_Warnung_aktiv_BFS : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_FH_Pos_oben : 57|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BT_Tuerschloss_defekt : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Tueroeffnen_Warnung : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BT_Lock_Taster_inv : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_Schluesselschalter_zu_inv : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_SWA_HMI_defekt : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BT_ASW_HMI_defekt : 63|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - -BO_ 1451 TSG_BT_03: 8 Gateway - SG_ TSG_FlHz_BFS_NTC_A : 48|7@1+ (1,-40) [-40|80] "Unit_DegreCelsi" ZR_High - SG_ TSG_FlHz_BFS_FnAbbruchHzKreis_A : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ TSG_FlHz_BFS_NTC_B : 56|7@1+ (1,-40) [-40|80] "Unit_DegreCelsi" ZR_High - SG_ TSG_FlHz_BFS_FnAbbruchHzKreis_B : 63|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - -BO_ 976 TSG_FT_01: 8 Gateway - SG_ FT_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ FT_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FT_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Schluesselschalter_auf : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Schluesselschalter_zu : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_IRUE_Taste : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_HD_Taste : 11|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FT_TD_Taste_Fehler : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_TD_Taste : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SSR_Temp_Freigabe : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" OTA_FC,ZR_High - SG_ FT_HD_Taste_2 : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_TSG_hinten_verbaut : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Sp_Blk_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ FT_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ASW_HMI_defekt : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FT_Schliesstaster : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FT_SP_ausgerastet : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_SP_lr_aktiv : 43|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FT_SP_ht_aktiv : 44|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ ASW_wakeup : 45|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FT_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Kisi_li_aktiv : 48|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ FT_Kisi_re_aktiv : 49|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ FT_Kisi_Taster_li : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Kisi_Taster_re : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_BFS_Fond_Freigabe : 52|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Kisi_Fehler : 53|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ FT_Daemmglas : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_SP_Heizung_Status : 55|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ ASW_Warnung_aktiv_FS : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_FH_Pos_oben : 57|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FT_Tuerschloss_defekt : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_SWA_Taster : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SWA_HMI_Diagnose : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ FS_Status_eTAG : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - -BO_ 975 TSG_HBFS_01: 8 Gateway - SG_ HBFS_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ HBFS_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Heckrollotaster_betaetigt : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Tuerschloss_defekt : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_HFS_AutoHoch : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_HFS_AutoTief : 11|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_HFS_ManHoch : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_HFS_ManTief : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Tuer_Status : 14|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High - SG_ HBFS_SAD_Schalter : 16|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ HBFS_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ HBFS_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HBFS_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Tueroeffnen_Warnung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HBFS_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ ASW_Warnung_aktiv_HBFS : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ HBFS_Seitenrollo_hoch : 42|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ HBFS_Seitenrollo_tief : 43|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ HBFS_Status_KiSi : 44|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ SSR_HBFS_Pos_Unten : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHBFS_M_Taste : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHBFS_Pos1 : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHBFS_Pos2 : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHBFS_Pos3 : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_MRollo_Schalter : 52|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ HBFS_Lock_Taster_inv : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Status_KiSi_inv : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HBFS_Status_eTAG : 57|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ HBFS_Tuer_Status_QBit : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HBFS_TIG_betaetigt_schliessen : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - -BO_ 974 TSG_HFS_01: 8 Gateway - SG_ HFS_Tuer_geoeffnet : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ HFS_verriegelt : 1|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_gesafet : 2|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Heckrollotaster_betaetigt : 3|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Tuerschloss_defekt : 4|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Unlock_Taster : 5|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Lock_Taster : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Sperrklinke : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_TAG_betaetigt : 8|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_TIG_betaetigt : 9|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_HBFS_AutoHoch : 10|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_HBFS_AutoTief : 11|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_HBFS_ManHoch : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_HBFS_ManTief : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Tuer_Status : 14|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High - SG_ HFS_SAD_Schalter : 16|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ HFS_FH_S_ManHoch : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_AutoHoch : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_ManTief : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_S_AutoTief : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ HFS_FH_Bew_hoch : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_Bew_tief : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_Fang : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_Block : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_FH_Thermo : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_UEKB_aktiviert : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Tueroeffnen_Warnung : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HFS_FH_normiert : 39|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ ASW_Warnung_aktiv_HFS : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Zuziehhilfe_aktiv : 41|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ HFS_Seitenrollo_hoch : 42|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ HFS_Seitenrollo_tief : 43|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ HFS_Status_KiSi : 44|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,ZR_High - SG_ SSR_HFS_Pos_Unten : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Oben_Block_erw : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Unten_Block_erw : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHFS_M_Taste : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHFS_Pos1 : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHFS_Pos2 : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MTHFS_Pos3 : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_MRollo_Schalter : 52|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ HFS_Lock_Taster_inv : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HFS_Status_eTAG : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ HFS_Tuer_Status_QBit : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HFS_TCR_Mode_aktiv : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - BO_ 960 Klemmen_Status_01: 4 Gateway SG_ ZAS_Kl_15a : 16|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX From db397c3b1eb3ffdd1203bafb2f0a050252984ac0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 20:08:36 +0200 Subject: [PATCH 031/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f07478e4ae5..cd950f6ffde 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -115,8 +115,8 @@ BO_ 420 EA_01: 8 Gateway SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX BO_ 173 Getriebe_11: 8 Gateway - SG_ Getriebe_11_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Getriebe_11_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ GE_MMom_Soll_02 : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX SG_ GE_MMom_Vorhalt_02 : 22|10@1+ (1,-509) [-509|509] "" Vector__XXX SG_ GE_Uefkt : 32|10@1+ (0.1,0) [0.0|102.2] "" Vector__XXX @@ -176,8 +176,8 @@ BO_ 1411 ZV_02: 8 Gateway SG_ ZV_verriegelt_soll : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX BO_ 1312 Airbag_02: 8 Gateway - SG_ Airbag_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Airbag_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From fc403f5839b92a82f05cfe07a396c1a185bf42df Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 21:07:21 +0200 Subject: [PATCH 032/653] Update vw_meb.dbc adapt values --- vw_meb.dbc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index cd950f6ffde..0a3f04ce401 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -276,3 +276,6 @@ BO_ 960 Klemmen_Status_01: 4 Gateway SG_ ZAS_Kl_15a : 16|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15c : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX + +VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; +VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; From d720e4c8f69635ed8c1dd662c5c50d8aea06cb2c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Jun 2024 22:15:30 +0200 Subject: [PATCH 033/653] Update vw_meb.dbc add potential wheel speed signal --- vw_meb.dbc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0a3f04ce401..01bd9cff089 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -277,5 +277,13 @@ BO_ 960 Klemmen_Status_01: 4 Gateway SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15c : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX +BO_ 259 Speed_01: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX + VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; From ba9835b4f022130b4772c5298b01695fc1d945ca Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 16:39:33 +0200 Subject: [PATCH 034/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 01bd9cff089..f3418838019 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -277,7 +277,7 @@ BO_ 960 Klemmen_Status_01: 4 Gateway SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ ZAS_Kl_15c : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX -BO_ 259 Speed_01: 48 XXX +BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX From 3f05a87686d61b6cc5ceb89737ce473dafda82f3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 16:58:26 +0200 Subject: [PATCH 035/653] Update vw_meb.dbc correct speed interval --- vw_meb.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f3418838019..81856b29bb5 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -281,9 +281,9 @@ BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; From 99d5ea3c354b7a13140403752f60b6e81b564af0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 18:20:13 +0200 Subject: [PATCH 036/653] Update vw_meb.dbc add signals --- vw_meb.dbc | 629 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 625 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 81856b29bb5..5852e84c56b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -36,6 +36,263 @@ BS_: BU_: BAP_Tester BedienDisp_vo BedienSG_hi CGS DDA Gateway Gateway_PAG GurtMikrofon OTA_FC ZR_High ZR_LIMU ZR_MIB_TOP_ab_Gen3 ZR_Standard +BO_ 278 ESP_10: 8 Gateway_MQB + SG_ ESP_10_CRC : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_10_BZ : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_Wegimpuls_VL : 12|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_Wegimpuls_VR : 13|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_Wegimpuls_HL : 14|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_Wegimpuls_HR : 15|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Wegimpuls_VL : 16|10@1+ (1,0) [0|1000] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Wegimpuls_VR : 26|10@1+ (1,0) [0|1000] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Wegimpuls_HL : 36|10@1+ (1,0) [0|1000] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Wegimpuls_HR : 46|10@1+ (1,0) [0|1000] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_VL_Fahrtrichtung : 56|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_VR_Fahrtrichtung : 58|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_HL_Fahrtrichtung : 60|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_HR_Fahrtrichtung : 62|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + +BO_ 253 ESP_21: 8 Gateway_MQB + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0|655.32] "Unit_KiloMeterPerHour" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ ASR_Tastung_passiv : 48|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Tastung_passiv : 49|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Systemstatus : 50|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ASR_Schalteingriff : 51|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ ESP_Haltebestaetigung : 53|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_v_Signal : 55|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ABS_Bremsung : 56|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ASR_Anf : 57|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ MSR_Anf : 58|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ EBV_Eingriff : 59|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ EDS_Eingriff : 60|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Eingriff : 61|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_ASP : 62|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Anhaltevorgang_ACC_aktiv : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + +BO_ 795 ESP_24: 8 Gateway + SG_ ESP_24_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway + SG_ ESP_24_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ABS_Lampe : 13|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ BK_Lampe_02 : 14|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ TC_Lampe : 16|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_m_Raddrehz : 17|15@1+ (0.002,0) [0|65.278] "Unit_Hertz" Sub_Gateway + SG_ ESP_Textanzeigen_03 : 32|5@1+ (1,0) [0|31] "" Sub_Gateway + SG_ ESP_Meldungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ ESP_Wegimp_VA : 40|11@1+ (1,0) [0|2047] "" Sub_Gateway + SG_ ESP_Fehlerstatus_Wegimp : 51|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_Wegimp_Ueberlauf : 52|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_QBit_Wegimp_VA : 53|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_HDC_Geschw_Farbe : 54|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_Off_Lampe : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_HDC_Regelgeschw : 56|7@1+ (0.32,0) [0.32|39.68] "Unit_KiloMeterPerHour" Sub_Gateway + SG_ ESP_BKV_Warnung : 63|1@1+ (1,0) [0|1] "" Sub_Gateway + +BO_ 184 EM1_HYB_13: 8 Gateway + SG_ EM1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Sperr_Info_WFS : 13|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_AR_aktiv : 14|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Eta_Sys : 15|9@1+ (0.2,0) [0|101.8] "Unit_PerCent" Sub_Gateway + SG_ EM1_IstStrom : 24|11@1+ (1,-1023) [-1023|1022] "Unit_Amper" Sub_Gateway + SG_ EM1_Fehler_ElAntriebFreilauf_Anf : 35|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Abregelung_Temperatur : 36|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_AnlernenElMotor_Anf : 43|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Moment_HVVerbraucher : 44|10@1+ (1,-511) [-511|511] "Unit_NewtoMeter" Sub_Gateway + SG_ EM1_Freigabe_Verfallsinfo_WFS : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Parken_WFS_Status : 56|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ EM1_HV_betriebsbereit : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + +BO_ 1600 Motor_07: 8 Motor_Diesel_MQB + SG_ MO_QBit_Ansaugluft_Temp : 0|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_QBit_Oel_Temp : 1|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_QBit_Kuehlmittel_Temp : 2|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Stellgliedtest_Soundaktuator : 3|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Fehler_HV_Netz : 4|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_aktives_Getriebeheizen : 5|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Absperrventil_oeffnen : 6|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Ansaugluft_Temp : 8|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB + SG_ MO_Oel_Temp : 16|8@1+ (1,-60) [-60|192] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Kuehlmittel_Temp : 24|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Hoeheninfo : 32|8@1+ (0.00781,0) [0|1.98374] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Kennfeldk : 40|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Versionsinfo : 41|6@1+ (1,0) [0|63] "" Gateway_MQB + SG_ MO_Getriebe_kuehlen : 47|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Traegheit_02 : 48|5@1+ (0.01,0) [0|0.31] "Unit_KiloGramMeterSquar" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Heizungspumpenansteuerung : 53|4@1+ (10,0) [0|100] "Unit_PerCent" Gateway_MQB + SG_ MO_SpannungsAnf : 57|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Nachlaufzeit_Heizungspumpe : 58|6@1+ (15,0) [0|945] "Unit_Secon" Gateway_MQB + +BO_ 167 Motor_11: 8 Motor_Diesel_MQB + SG_ Motor_11_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ Motor_11_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Soll_Roh : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Ist_Summe : 22|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,SAK_MQB + SG_ MO_Mom_Traegheit_Summe : 32|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Soll_gefiltert : 42|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Schub : 52|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Status_Normalbetrieb_01 : 61|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_erste_Ungenauschwelle : 62|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_QBit_Motormomente : 63|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + +BO_ 168 Motor_12: 8 Motor_Diesel_MQB + SG_ Motor_12_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ Motor_12_BZ : 8|4@1+ (1,0) [0|15] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Mom_neg_verfuegbar : 12|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB + SG_ MO_Mom_Begr_stat : 21|9@1+ (1,0) [0|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Begr_dyn : 30|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB + SG_ MO_Momentenintegral_02 : 40|7@1+ (1,0) [0|100] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_QBit_Drehzahl_01 : 47|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB + +BO_ 958 Motor_14: 8 Gateway + SG_ Motor_14_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway + SG_ Motor_14_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME + SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME + SG_ MO_Freig_Reku : 16|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Kl_75 : 18|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Kl_50 : 19|1@1+ (1,0) [0|1] "" DCDC_IHEV,Ladegeraet_Konzern,Sub_Gateway + SG_ MO_Gangposition : 20|4@1+ (1,0) [0|15] "" AWC,Sub_Gateway,TME + SG_ MO_StartStopp_Fahrerwunsch : 24|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_HYB_Fahrbereitschaft : 26|1@1+ (1,0) [0|1] "" AWC,BMS_NV,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ MO_Ext_E_Fahrt_aktiv : 27|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Fahrer_bremst : 28|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_QBit_Fahrer_bremst : 29|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_BLS : 30|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Konsistenz_Bremsped : 31|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_KomFehler_ESP : 32|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Klima_Eingr : 33|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_Aussp_Anlass : 35|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Freig_Anlass : 36|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Kuppl_schalter : 37|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Interlock : 38|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Motor_laeuft : 39|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Kickdown : 40|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_QBit_KL_75 : 41|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_EKlKomLeiRed : 42|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Handshake_STH : 44|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_BKV_Unterdruckwarnung : 45|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Freigabe_Segeln : 46|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_PTC_Status : 47|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_QBit_Gangposition : 50|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Signalquelle_Gangposition : 51|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Remotestart_Betrieb : 52|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Remotestart_moeglich : 53|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_FMAus_aktiv : 55|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway + SG_ MO_FMAus_Startvariante : 56|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_BMS_NV_Anf_stuetzen : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Zylinderabschaltung : 59|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_HYB_VM_aktiv : 61|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1,0) [0|3] "" AWC,Ladegeraet_Konzern,Sub_Gateway + +BO_ 1631 Motor_16: 8 Motor_Diesel_MQB + SG_ TSK_QBit_Steigung : 12|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ TSK_QBit_Fahrzeugmasse : 13|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_DPF_reg : 16|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Heizstrom_EKAT : 17|7@1+ (1,0) [0|126] "Unit_Amper" Gateway_MQB + SG_ MO_Heizstrom_SCR : 24|6@1+ (1,0) [0|62] "Unit_Amper" Gateway_MQB + SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ TSK_Steigung : 56|8@1+ (0.8,-101.6) [-101.6|101.6] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + +BO_ 1648 Motor_18: 8 Motor_Diesel_MQB + SG_ MO_Hybrid_StartStopp_LED : 43|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Eis_Offroad_LED : 45|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Anzahl_Abgesch_Zyl : 47|3@1+ (1,0) [0|7] "" Gateway_MQB + SG_ MO_Zylabsch_Texte : 50|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_E85_BS_Texte : 52|3@1+ (1,0) [0|7] "" Gateway_MQB + SG_ MO_Drehzahl_Warnung : 55|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_obere_Drehzahlgrenze : 56|8@1+ (50,0) [50|12750] "Unit_MinutInver" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + +BO_ 967 Motor_26: 8 Motor_Diesel_MQB + SG_ MO_HYB_Status_HV_Ladung : 8|3@1+ (1,0) [0|7] "" Gateway_MQB + SG_ WIV_Anzeige_aktiv : 12|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Oelmin_Warn : 13|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Sensorfehler : 14|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Schieflage : 15|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Oelstand : 16|4@1+ (12.5,0) [0|100] "Unit_PerCent" Gateway_MQB + SG_ MO_Zustand_HWP : 20|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ WIV_Oelsystem_aktiv : 24|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_nicht_betriebswarm : 25|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Ueberfuell_Warn : 26|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_laufender_Motor : 27|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_1 : 28|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_2 : 29|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_3 : 30|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_4 : 31|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Text_Motorstart : 32|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ MO_HYB_Text_5 : 36|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_6 : 37|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Text_7 : 38|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Text_Partikelfil_Reg : 41|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Oelmenge : 43|5@1+ (125,0) [0|3875] "Unit_MilliLiter" Gateway_MQB + SG_ MO_Systemlampe : 48|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_OBD2_Lampe : 49|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Heissleuchte : 50|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Partikel_Lampe : 51|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Winterfahrprog : 52|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ WIV_Oelstand_nicht_vorhanden : 53|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_nachfuellanzeige_ein : 54|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Ueberfuell_deaktiv : 55|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Unterfuell_Warn : 56|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Tankdeckel_Lampe : 57|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Text_Tankdeckelwarn : 58|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Gateway_MQB + +BO_ 869 BEM_05: 8 Gateway_MQB + SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_n_LLA : 24|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_01_Abschaltstufen : 26|3@1+ (1,0) [0|7] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_Anf_KL : 29|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_StartStopp_Info : 30|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ BEM_DFM : 32|5@1+ (3.225,0.025) [0.025|100] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_EMLIN_ungueltig : 37|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_Batt_Ab : 38|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_Segel_Info : 48|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" LEH_MQB + SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" LEH_MQB + +BO_ 916 WBA_03: 8 Getriebe_DQ_Hybrid_MQB + SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB + SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ WBA_Fahrstufe_02 : 12|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ WBA_ZielFahrstufe : 16|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ WBA_GE_Warnung_02 : 20|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ WBA_eing_Gang_02 : 24|4@1+ (1,0) [0|15] "" Gateway_MQB,Motor_Diesel_MQB,Motor_Otto_MQB + SG_ WBA_GE_Texte : 28|3@1+ (1,0) [0|7] "" Gateway_MQB + SG_ WBA_Segeln_aktiv : 31|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ WBA_Schaltschema : 32|5@1+ (1,0) [0|31] "" Gateway_MQB + +BO_ 949 Klima_11: 8 Gateway_MQB + SG_ KL_Drehz_Anh : 0|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_Vorwarn_Komp_ein : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_AC_Schalter : 2|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Komp_Moment_alt : 3|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Zonen : 4|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_Vorwarn_Zuheizer_ein : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Zustand : 7|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_Comp_rev_rq : 8|8@1+ (50,0) [0|8600] "Unit_MinutInver" Vector__XXX + SG_ KL_Charisma_FahrPr : 16|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KL_Charisma_Status : 20|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_Comp_enable : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Last_Kompr : 24|8@1+ (0.25,0) [0|63.5] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_Spannungs_Anf : 32|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_Thermomanagement : 34|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_StartStopp_Info : 36|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ KL_Anf_KL : 40|8@1+ (0.4,0) [0|101.6] "Unit_PerCent" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_el_Zuheizer_Stufe : 48|3@1+ (1,0) [0|7] "" Motor_Diesel_MQB + +BO_ 1520 Dimmung_01: 8 Gateway_MQB + SG_ DI_KL_58xd : 0|8@1+ (1,0) [0|253] "" Airbag_MQB + SG_ DI_KL_58xs : 8|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ DI_Display_Nachtdesign : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ DI_KL_58xt : 16|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ DI_Fotosensor : 24|16@1+ (1,0) [0|65535] "" Vector__XXX + BO_ 870 Blinkmodi_02: 8 Gateway SG_ BM_ZV_auf : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ BM_ZV_zu : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High @@ -66,6 +323,78 @@ BO_ 870 Blinkmodi_02: 8 Gateway SG_ BM_PiloPa : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High +BO_ 982 Licht_hinten_01: 8 Gateway_MQB + SG_ Licht_hinten_01_BZ : 0|4@1+ (1,0) [0|15] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BCM2_Bremsl_durch_ECD : 5|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ LH_Aussenlicht_def : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Standlicht_H_aktiv : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Parklicht_HL_aktiv : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Parklicht_HR_aktiv : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremslicht_H_aktiv : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Nebelschluss_aktiv : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Rueckfahrlicht_aktiv : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Blinker_HL_akt : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Blinker_HR_akt : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Blinker_li_def : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremsl_li_def : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schlusslicht_li_def : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Rueckf_li_def : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Nebel_li_def : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_Nebel_li_def : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_Nebel_re_def : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_li_def : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Nebel_li_def : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_SL_BRL_BLK_li_def : 26|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Brems_Blk_li_def : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Blinker_re_def : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremsl_re_def : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schlusslicht_re_def : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Rueckf_re_def : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Nebel_re_def : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_re_def : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Nebel_re_def : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_SL_BRL_BLK_re_def : 42|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Brems_Blk_re_def : 43|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Kennzl_def : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_3_Bremsl_def : 49|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ LH_Nebel_mi_def : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Rueckf_mi_def : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + +BO_ 987 Gateway_72: 8 Gateway_MQB + SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ SMLS_01_alt : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ ZV_02_alt : 2|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Wischer_01_alt : 3|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Anhaenger_01_alt : 4|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ Klima_Sensor_02_alt : 5|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ VSG_01_alt : 6|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ Klima_01_alt : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_01_alt : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ Licht_Anf_01_alt : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HFS_offen : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HBFS_offen : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ VS_VD_offen_ver : 22|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ VS_VD_zu_ver : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_BT_offen : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_Rueckfahrlicht_Schalter : 25|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ ZV_FT_offen : 26|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Wischer_vorne_aktiv : 27|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ AAG_Anhaenger_erkannt : 28|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ BCM1_MH_Schalter : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HD_offen : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ Waschen_vorne_aktiv : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Thermomanagement : 32|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ WFS_Schluessel_Fahrberecht : 34|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BCM1_RFahrlicht_Fzg_Anf : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_RFahrlicht_Ahg_Anf : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BH_Fernlicht : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BH_Blinker_li : 50|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ BH_Blinker_re : 51|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ BCM1_OBD_FStatus_ATemp : 52|4@1+ (1,0) [0|15] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BCM1_Aussen_Temp_ungef : 56|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + BO_ 299 GRA_ACC_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX @@ -113,6 +442,10 @@ BO_ 420 EA_01: 8 Gateway SG_ EA_Gurtstraffer_Anf : 44|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX SG_ EA_Anforderung_HMS : 48|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX + +BO_ 695 RCTA_01: 8 XXX + SG_ RCTA_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX + SG_ RCTA_01_CRC : 0|8@1+ (1,0) [0|255] "" XXX BO_ 173 Getriebe_11: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -174,6 +507,226 @@ BO_ 1411 ZV_02: 8 Gateway SG_ ZV_SAD_zu : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ BCM_Tankklappensteller_Fehler : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ ZV_verriegelt_soll : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 1714 Diagnose_01: 8 Gateway_MQB + SG_ DGN_Verlernzaehler : 0|8@1+ (1,0) [0|254] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB + SG_ KBI_Kilometerstand : 8|20@1+ (1,0) [0|1048573] "Unit_KiloMeter" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Jahr : 28|7@1+ (1,2000) [2000|2127] "Unit_Year" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Monat : 35|4@1+ (1,0) [1|12] "Unit_Month" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Tag : 39|5@1+ (1,0) [1|31] "Unit_Day" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Stunde : 44|5@1+ (1,0) [0|23] "Unit_Hours" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Minute : 49|6@1+ (1,0) [0|59] "Unit_Minut" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Sekunde : 55|6@1+ (1,0) [0|59] "Unit_Secon" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ Kombi_02_alt : 62|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB + SG_ Uhrzeit_01_alt : 63|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB + +BO_ 1716 VIN_01: 8 Gateway_MQB + SG_ VIN_01_MUX M : 0|2@1+ (1,0) [0|3] "" Airbag_MQB + SG_ KS_Geheimnis_1 m0 : 8|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ VIN_4 m1 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_11 m2 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ KS_Geheimnis_2 m0 : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ VIN_5 m1 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_12 m2 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ KS_Geheimnis_3 m0 : 24|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ VIN_6 m1 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_13 m2 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ KS_Geheimnis_4 m0 : 32|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ VIN_7 m1 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_14 m2 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_1 m0 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_8 m1 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_15 m2 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_2 m0 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_9 m1 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_16 m2 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_3 m0 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_10 m1 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_17 m2 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + +BO_ 974 TSG_HFS_01: 8 Gateway + SG_ HFS_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_verriegelt : 1|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_gesafet : 2|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Heckrollotaster_betaetigt : 3|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Tuerschloss_defekt : 4|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Unlock_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Lock_Taster : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Sperrklinke : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_TAG_betaetigt : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_TIG_betaetigt : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_HBFS_AutoHoch : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_HBFS_AutoTief : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_HBFS_ManHoch : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_HBFS_ManTief : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Tuer_Status : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HFS_SAD_Schalter : 16|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HFS_FH_S_ManHoch : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_AutoHoch : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_ManTief : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_S_AutoTief : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ HFS_FH_Bew_hoch : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_Bew_tief : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_Fang : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_Block : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_Thermo : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_UEKB_aktiviert : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Tueroeffnen_Warnung : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_FH_normiert : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ASW_Warnung_aktiv_HFS : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Zuziehhilfe_aktiv : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME + SG_ HFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME + SG_ HFS_Status_KiSi : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SSR_HFS_Pos_Unten : 45|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Oben_Block_erw : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Unten_Block_erw : 47|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHFS_M_Taste : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHFS_Pos1 : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHFS_Pos2 : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHFS_Pos3 : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_MRollo_Schalter : 52|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ HFS_Lock_Taster_inv : 55|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_Status_eTAG : 56|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HFS_Tuer_Status_QBit : 58|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HFS_TCR_Mode_aktiv : 59|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 975 TSG_HBFS_01: 8 Gateway + SG_ HBFS_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_verriegelt : 1|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_gesafet : 2|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Heckrollotaster_betaetigt : 3|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Tuerschloss_defekt : 4|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Unlock_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Lock_Taster : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Sperrklinke : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_TAG_betaetigt : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_TIG_betaetigt : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_HFS_AutoHoch : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_HFS_AutoTief : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_HFS_ManHoch : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_HFS_ManTief : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Tuer_Status : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HBFS_SAD_Schalter : 16|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HBFS_FH_S_ManHoch : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_AutoHoch : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_ManTief : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_S_AutoTief : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_Oeffnung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ HBFS_FH_Bew_hoch : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_Bew_tief : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_Fang : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_Block : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_Thermo : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_UEKB_aktiviert : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Tueroeffnen_Warnung : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_FH_normiert : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ASW_Warnung_aktiv_HBFS : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Zuziehhilfe_aktiv : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME + SG_ HBFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME + SG_ HBFS_Status_KiSi : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SSR_HBFS_Pos_Unten : 45|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Oben_Block_erw : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Unten_Block_erw : 47|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHBFS_M_Taste : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHBFS_Pos1 : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHBFS_Pos2 : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MTHBFS_Pos3 : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_MRollo_Schalter : 52|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ HBFS_Lock_Taster_inv : 55|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Status_KiSi_inv : 56|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_Status_eTAG : 57|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HBFS_Tuer_Status_QBit : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_TIG_betaetigt_schliessen : 60|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 976 TSG_FT_01: 8 Gateway + SG_ FT_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern,TME + SG_ FT_verriegelt : 1|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_gesafet : 2|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Schluesselschalter_auf : 3|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV + SG_ FT_Schluesselschalter_zu : 4|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV + SG_ FT_Unlock_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Lock_Taster : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Sperrklinke : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_TAG_betaetigt : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_TIG_betaetigt : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_IRUE_Taste : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_HD_Taste : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_TD_Taste_Fehler : 12|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern + SG_ FT_TD_Taste : 13|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern + SG_ SSR_Temp_Freigabe : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ FT_HD_Taste_2 : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_TSG_hinten_verbaut : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Sp_Blk_def : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_S_ManHoch : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_S_AutoHoch : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_S_ManTief : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_S_AutoTief : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Oeffnung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" TME + SG_ FT_FH_Bew_hoch : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Bew_tief : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Fang : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Block : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Thermo : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_UEKB_aktiviert : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ASW_HMI_defekt : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_normiert : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Schliesstaster : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Zuziehhilfe_aktiv : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SP_ausgerastet : 42|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SP_lr_aktiv : 43|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SP_ht_aktiv : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ASW_wakeup : 45|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Oben_Block_erw : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Unten_Block_erw : 47|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_li_aktiv : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_re_aktiv : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_Taster_li : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_Taster_re : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_BFS_Fond_Freigabe : 52|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_Fehler : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Daemmglas : 54|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SP_Heizung_Status : 55|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ASW_Warnung_aktiv_FS : 56|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_FH_Pos_oben : 57|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Tuerschloss_defekt : 58|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SWA_Taster : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SWA_HMI_Diagnose : 60|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ FS_Status_eTAG : 62|2@1+ (1,0) [0|3] "" Vector__XXX + +BO_ 64 Airbag_01: 8 Gateway + SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway + SG_ Airbag_01_BZ : 8|4@1+ (1,0) [0|15] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway + SG_ AB_RGS_Anst : 12|4@1+ (1,0) [0|15] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Front_Crash : 16|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Heck_Crash : 17|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_SF_Crash : 18|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_SB_Crash : 19|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Rollover_Crash : 20|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Crash_Int : 21|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,Sub_Gateway,TME + SG_ AB_Lampe : 24|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Deaktiviert : 25|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_VB_deaktiviert : 26|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Systemfehler : 27|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Diagnose : 28|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Stellgliedtest : 29|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway,TME + SG_ AB_Erh_Auf_VB : 30|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Gurtwarn_VF : 32|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Gurtwarn_VB : 33|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Anzeige_Fussg : 34|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Texte_AKS : 36|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_MKB_gueltig : 39|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_MKB_Anforderung : 40|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Versorgungsspannung : 41|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Deaktivierung_HV : 42|3@1+ (1,0) [0|7] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ AB_EDR_Trigger : 45|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Belegung_VF : 47|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_Masterzeit_Offset : 53|2@1+ (5.08,0) [0|15.24] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_LowSpeedCrashErkannt : 55|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway BO_ 1312 Airbag_02: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -208,6 +761,71 @@ BO_ 1312 Airbag_02: 8 Gateway SG_ AB_Sitzpos_Sens_BF : 58|2@1+ (1.0,0.0) [0.0|3] "" ZR_High SG_ AB_Wickelklappung_Reihe2_BF : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + +BO_ 1601 Motor_Code_01: 8 Motor_Diesel_MQB + SG_ Motor_Code_01_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB + SG_ Motor_Code_01_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ MO_Faktor_Momente_02 : 12|2@1+ (1,0) [0|3] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Hybridfahrzeug : 14|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Code : 16|8@1+ (1,0) [0|255] "" Gateway_MQB,SAK_MQB + SG_ MO_Getriebe_Code : 24|6@1+ (1,0) [0|63] "" Gateway_MQB + SG_ MO_StartStopp_Codiert : 30|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Anzahl_Zyl : 32|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ MO_Kraftstoffart : 36|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Hubraum : 40|7@1+ (0.1,0) [0|12.7] "Unit_Liter" Gateway_MQB + SG_ MO_Ansaugsystem : 47|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Leistung : 48|9@1+ (1,0) [0|511] "Unit_KiloWatt" Gateway_MQB + SG_ MO_Abgastyp_EOBD : 57|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB + SG_ MO_Abgastyp_OBD : 58|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB + SG_ MO_DPF_verbaut : 59|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ TSK_Codierung : 60|3@1+ (1,0) [0|7] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Einspritzart : 63|1@1+ (1,0) [0|1] "" Gateway_MQB + +BO_ 1603 Einheiten_01: 8 Gateway_MQB + SG_ KBI_Einheit_Datum : 0|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Druck : 2|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Streckenanz : 4|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB + SG_ KBI_MFA_v_Einheit_02 : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Einheit_Temp : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Einheit_Uhrzeit : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Einheit_Verbrauch : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Volumen : 10|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Sprache : 16|8@1+ (1,0) [0|255] "" Vector__XXX + +BO_ 1629 ESP_20: 8 Gateway_MQB + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BR_Systemart : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Zaehnezahl : 16|8@1+ (1,0) [0|255] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ ESP_Charisma_FahrPr : 24|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ ESP_Charisma_Status : 28|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + +BO_ 1413 Systeminfo_01: 8 Gateway_MQB + SG_ SI_Sammel_SG_Fehler : 0|6@1+ (1,0) [0|60] "" Vector__XXX + SG_ SI_Rollenmode : 6|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ SI_QRS_Mode : 8|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ SI_T_Mode : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_NWDF : 10|1@1+ (1,0) [0|1] "" SAK_MQB + SG_ SI_NWDF_gueltig : 11|1@1+ (1,0) [0|1] "" SAK_MQB + SG_ SI_Sammelfehler : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GW_KD_Fehler : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_01 : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_02 : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_03 : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_04 : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_05 : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_06 : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_07 : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_08 : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_09 : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_10 : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_11 : 26|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_12 : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_13 : 28|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_14 : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SI_BUS_15 : 30|1@1+ (1,0) [0|1] "" Vector__XXX BO_ 605 KLR_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -272,10 +890,13 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX -BO_ 960 Klemmen_Status_01: 4 Gateway - SG_ ZAS_Kl_15a : 16|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ZAS_Kl_15b : 17|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ZAS_Kl_15c : 18|1@1+ (1.0,0.0) [0.0|1] "" XXX +BO_ 960 Klemmen_Status_01: 4 Gateway_MQB + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ZAS_Kl_S : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZAS_Kl_15 : 17|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZAS_Kl_50 : 19|1@1+ (1,0) [0|1] "" Vector__XXX BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX From c5e31f86ca3d90219cc3897436adceedf21c8bbc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 18:34:20 +0200 Subject: [PATCH 037/653] Update vw_meb.dbc add more signals --- vw_meb.dbc | 380 ++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 300 insertions(+), 80 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5852e84c56b..c4322064d16 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -105,6 +105,90 @@ BO_ 184 EM1_HYB_13: 8 Gateway SG_ EM1_Parken_WFS_Status : 56|2@1+ (1,0) [0|3] "" Sub_Gateway SG_ EM1_HV_betriebsbereit : 58|1@1+ (1,0) [0|1] "" Sub_Gateway +BO_ 339 MSG_HYB_30: 8 Gateway + SG_ MSG_HYB_30_CRC : 0|8@1+ (1,0) [0|255] "" Ladegeraet_Konzern + SG_ MSG_HYB_30_BZ : 8|4@1+ (1,0) [0|15] "" Ladegeraet_Konzern + SG_ MO_HVEM_Eskalation : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_ErwGrenzen_Anf : 13|1@1+ (1,0) [0|1] "" BMC_MLBevo + SG_ MO_Fehler_Notentladung_Anf : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_HVEM_MaxLeistung : 15|9@1+ (50,0) [0|25450] "Unit_Watt" Vector__XXX + SG_ MO_HVK_EmIstzustand : 24|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MO_HVK_AntriebFehlerstatus : 37|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_MVK_Bordnetz_Anf : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_HVK_AntriebZustand : 41|3@1+ (1,0) [0|7] "" TME + SG_ MO_HVK_EmFehlerstatus : 44|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_MVK_AntriebFehlerstatus : 47|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_MVK_AntriebZustand : 50|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_MVK_EmFehlerstatus : 53|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_MVK_EmIstzustand : 56|8@1+ (1,0) [0|255] "" Vector__XXX + +BO_ 1452 HVEM_02: 8 Gateway + SG_ HVEM_IstStrom_HVVerbraucher : 0|12@1+ (0.1,-204.7) [-204.7|204.6] "Unit_Amper" Vector__XXX + SG_ HVEM_Energie_Klima_Vorgabe_HighR : 12|3@1+ (10,0) [0|50] "Unit_WattHour" TME + SG_ HVEM_IstLeistungNA : 15|9@1+ (50,0) [0|25450] "Unit_Watt" Vector__XXX + SG_ HVEM_Leistung_Klima_Vorgabe : 24|8@1+ (50,0) [0|12650] "Unit_Watt" TME + SG_ HVEM_Nutzbare_Energie : 32|11@1+ (50,0) [0|102200] "Unit_WattHour" Ladegeraet_Konzern + SG_ HVEM_Energie_Klima_Vorgabe : 43|8@1+ (50,0) [0|12650] "Unit_WattHour" TME + SG_ HVEM_MO_MaxLeistungIgnoriert : 63|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 869 NVEM_05: 8 Gateway + SG_ NVEM_05_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ NVEM_05_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ NVEM_Pilot_Info : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ NVEM_P_Generator_Status : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Vector__XXX + SG_ BEM_n_LLA : 24|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_Anf_KL : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BEM_StartStopp_Info : 30|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_DFM : 32|5@1+ (3.225,0.025) [0.025|100] "" Vector__XXX + SG_ BEM_Batt_Ab : 38|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_IHEV + SG_ BEM_Hybrid_Info : 44|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ NVEM_Red_KL : 46|2@1+ (1,0) [0|3] "" TME + SG_ NVEM_Freilauf_Info : 48|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" DCDC_800V_PAG,DCDC_HV,LE_MLBevo + SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" Vector__XXX + +BO_ 1442 BMS_04: 8 BMC_MLBevo + SG_ BMS_04_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_04_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_Status_ServiceDisconnect : 13|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_Status_Spgfreiheit : 14|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_OBD_Lampe_Anf : 16|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_IstModus : 17|3@1+ (1,0) [0|7] "" AWC,Gateway,Gateway_PAG,Ladegeraet_Konzern,LE1,LE2,LE2_3_MLBevo_LB,Sub_Gateway,TME + SG_ BMS_Fehlerstatus : 20|3@1+ (1,0) [0|7] "" AWC,DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway + SG_ BMS_Kapazitaet_02 : 23|11@1+ (0.2,0) [0|409.2] "Unit_AmperHour" Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway + SG_ BMS_Soll_SOC_HiRes : 53|11@1+ (0.05,0) [0|100] "Unit_PerCent" Gateway,Gateway_PAG,Sub_Gateway + +BO_ 1485 DCDC_03: 8 DCDC_800V_PAG + SG_ DCDC_03_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DCDC_03_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Fehlerstatus : 16|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Peakstrom_verfuegbar : 19|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Abregelung_Temperatur : 20|1@1+ (1,0) [0|1] "" Gateway_PAG,Sub_Gateway,TME + SG_ DC_IstModus_02 : 21|3@1+ (1,0) [0|7] "" DCDC_HV_02,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ DC_HV_EKK_IstModus : 28|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway,TME + SG_ DC_Status_Spgfreiheit_HV : 46|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_IstSpannung_EKK_HV : 48|8@1+ (2,0) [0|508] "Unit_Volt" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Temperatur : 56|8@1+ (1,-40) [-40|213] "Unit_DegreCelsi" Gateway,Gateway_PAG,Sub_Gateway,TME + +BO_ 1505 Klima_Sensor_02: 8 Gateway + SG_ BCM1_Aussen_Temp_ungef : 0|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" BMC_MLBevo,BMS_NV,FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME + SG_ BCM_Heizungsabsperrventil_Status : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM_Heizungspumpe_Status : 10|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM_Kompressorkupplung_Status : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM1_PTC_stufig_Status : 28|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ BCM1_FStatus_Aussentemp_ungef : 31|1@1+ (1,0) [0|1] "" TME + SG_ BCM1_Kompressorstrom_ist : 32|8@1+ (4,0) [0|1000] "Unit_MilliAmper" Vector__XXX + SG_ BCM1_OBD_FStatus_ATemp : 44|4@1+ (1,0) [0|15] "" BMC_MLBevo,Ladegeraet_Konzern,TME + +BO_ 1513 Klima_Sensor_04: 8 Gateway + SG_ DS_Kaeltemittel_P : 8|11@1+ (0.0161,0) [0|32.9245] "Unit_Bar" TME + SG_ DS_Status : 19|2@1+ (1,0) [0|3] "" TME + SG_ ION_Status : 21|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ION_Status_LED : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AAU_Geblaese : 24|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ ION_Status_Taster : 31|1@1+ (1,0) [0|1] "" Vector__XXX + BO_ 1600 Motor_07: 8 Motor_Diesel_MQB SG_ MO_QBit_Ansaugluft_Temp : 0|1@1+ (1,0) [0|1] "" Gateway_MQB SG_ MO_QBit_Oel_Temp : 1|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB @@ -199,49 +283,68 @@ BO_ 1631 Motor_16: 8 Motor_Diesel_MQB SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB SG_ TSK_Steigung : 56|8@1+ (0.8,-101.6) [-101.6|101.6] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB -BO_ 1648 Motor_18: 8 Motor_Diesel_MQB - SG_ MO_Hybrid_StartStopp_LED : 43|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_Eis_Offroad_LED : 45|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_Anzahl_Abgesch_Zyl : 47|3@1+ (1,0) [0|7] "" Gateway_MQB - SG_ MO_Zylabsch_Texte : 50|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_E85_BS_Texte : 52|3@1+ (1,0) [0|7] "" Gateway_MQB - SG_ MO_Drehzahl_Warnung : 55|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_obere_Drehzahlgrenze : 56|8@1+ (50,0) [50|12750] "Unit_MinutInver" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - -BO_ 967 Motor_26: 8 Motor_Diesel_MQB - SG_ MO_HYB_Status_HV_Ladung : 8|3@1+ (1,0) [0|7] "" Gateway_MQB - SG_ WIV_Anzeige_aktiv : 12|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Oelmin_Warn : 13|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Sensorfehler : 14|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Schieflage : 15|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Oelstand : 16|4@1+ (12.5,0) [0|100] "Unit_PerCent" Gateway_MQB - SG_ MO_Zustand_HWP : 20|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ WIV_Oelsystem_aktiv : 24|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_nicht_betriebswarm : 25|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Ueberfuell_Warn : 26|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_laufender_Motor : 27|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_1 : 28|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_2 : 29|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_3 : 30|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_4 : 31|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Text_Motorstart : 32|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ MO_HYB_Text_5 : 36|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_6 : 37|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Text_7 : 38|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Text_Partikelfil_Reg : 41|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Oelmenge : 43|5@1+ (125,0) [0|3875] "Unit_MilliLiter" Gateway_MQB - SG_ MO_Systemlampe : 48|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_OBD2_Lampe : 49|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Heissleuchte : 50|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Partikel_Lampe : 51|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Winterfahrprog : 52|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ WIV_Oelstand_nicht_vorhanden : 53|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_nachfuellanzeige_ein : 54|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Ueberfuell_deaktiv : 55|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Unterfuell_Warn : 56|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Tankdeckel_Lampe : 57|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Text_Tankdeckelwarn : 58|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Gateway_MQB +BO_ 1648 Motor_18: 8 Gateway + SG_ MO_max_Ladedruck : 0|6@1+ (0.1,0) [0|6.3] "Unit_Bar" Sub_Gateway + SG_ MO_ANC_Kennfeld_Anf : 6|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Bremslicht_Reku : 8|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_StartStopp_PopUp : 9|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO1_Sperr_Info_WFS : 11|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_EPCL : 13|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Zylabsch_Texte_02 : 16|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ MO_Fahrzeugtyp : 20|3@1+ (1,0) [0|7] "" BMS_NV,Sub_Gateway + SG_ MO_NMAX_Schaltanzeige : 23|9@1+ (25,0) [0|12775] "Unit_MinutInver" Sub_Gateway + SG_ MO_Abstellzeit : 32|8@1+ (8,0) [0|2024] "Unit_Minut" BMS_NV,Sub_Gateway,TME + SG_ MO_Abstellzeit_Status : 40|2@1+ (1,0) [0|3] "" BMS_NV,Sub_Gateway,TME + SG_ MO1_Freigabe_Verfallsinfo_WFS : 42|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Hybrid_StartStopp_LED : 43|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Fehler_Zylabsch : 45|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Anzahl_Abgesch_Zyl : 47|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Zylabsch_Texte : 50|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Ethanol_BS_Texte : 52|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Drehzahl_Warnung : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_obere_Drehzahlgrenze : 56|8@1+ (50,0) [50|12750] "Unit_MinutInver" Sub_Gateway + +BO_ 967 Motor_26: 8 Gateway + SG_ MO_Kuehlerluefter_MUX M : 0|1@1+ (1,0) [0|1] "" TME + SG_ MO_Kuehlerluefter_1 m0 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME + SG_ MO_Kuehlerluefter_2 m1 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME + SG_ MO_EFLEX_Lampe : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_KJS_nicht_bereit : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_ITM_Warnung_Pumpe : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Anzeige_aktiv : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelmin_Warn : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Sensorfehler : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Schieflage : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelstand : 16|4@1+ (12.5,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ MO_Zustand_HWP : 20|2@1+ (1,0) [0|3] "" TME + SG_ OLEV_Systemstoerung : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Oelwarnung_max : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelsystem_aktiv : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_nicht_betriebswarm : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Ueberfuell_Warn : 26|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_laufender_Motor : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_E_Warnungen : 28|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_Text_Motorstart : 32|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_E_Texte : 36|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ WIV_Oeldyn_avl : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Text_Partikelfil_Reg : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ OLEV_Oelstand_nicht_vorhanden : 42|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelmenge : 43|5@1+ (125,0) [0|3875] "Unit_MilliLiter" Vector__XXX + SG_ MO_Systemlampe : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_OBD2_Lampe : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Heissleuchte : 50|1@1+ (1,0) [0|1] "" TME + SG_ MO_Partikel_Lampe : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_RedFahrleistung_Lampe : 52|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelstand_nicht_vorhanden : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_nachfuellanzeige_ein : 54|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Ueberfuell_deaktiv : 55|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Unterfuell_Warn : 56|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Tankdeckel_Lampe : 57|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Text_Tankdeckelwarn : 58|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Vorglueh_Lampe : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_E_Mode : 61|3@1+ (1,0) [0|7] "" Vector__XXX BO_ 869 BEM_05: 8 Gateway_MQB SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB @@ -256,35 +359,92 @@ BO_ 869 BEM_05: 8 Gateway_MQB SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" LEH_MQB SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" LEH_MQB -BO_ 916 WBA_03: 8 Getriebe_DQ_Hybrid_MQB - SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB - SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ WBA_Fahrstufe_02 : 12|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ WBA_ZielFahrstufe : 16|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ WBA_GE_Warnung_02 : 20|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ WBA_eing_Gang_02 : 24|4@1+ (1,0) [0|15] "" Gateway_MQB,Motor_Diesel_MQB,Motor_Otto_MQB - SG_ WBA_GE_Texte : 28|3@1+ (1,0) [0|7] "" Gateway_MQB - SG_ WBA_Segeln_aktiv : 31|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ WBA_Schaltschema : 32|5@1+ (1,0) [0|31] "" Gateway_MQB - -BO_ 949 Klima_11: 8 Gateway_MQB - SG_ KL_Drehz_Anh : 0|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ KL_Vorwarn_Komp_ein : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ KL_AC_Schalter : 2|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Komp_Moment_alt : 3|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Zonen : 4|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB +BO_ 916 WBA_03: 8 Gateway + SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway + SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_Fahrstufe_02 : 12|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_ZielFahrstufe : 16|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_GE_Warnung_02 : 20|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_eing_Gang_02 : 24|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_GE_Texte : 28|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ WBA_Segeln_aktiv : 31|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ WBA_Schaltschema : 32|5@1+ (1,0) [0|31] "" Sub_Gateway + SG_ WBA_GE_Zusatzwarnungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ GE_Sollgang : 40|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ GE_Tipschaltempf_verfuegbar : 44|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ WBA_GE_Texte_02 : 45|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ WBA_GE_Texte_03 : 48|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_Blinken : 54|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Wiederstart_Anz_Std : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_01 : 56|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_02 : 57|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_03 : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_04 : 59|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_05 : 60|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_06 : 61|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_07 : 62|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_Std : 63|1@1+ (1,0) [0|1] "" Sub_Gateway + +BO_ 1283 HVK_01: 8 Gateway + SG_ HVK_01_CRC : 0|8@1+ (1,0) [0|255] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME + SG_ HVK_01_BZ : 8|4@1+ (1,0) [0|15] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME + SG_ HVK_Istmodus_Anf : 12|1@1+ (1,0) [0|1] "" BMC_MLBevo,DCDC_HV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo + SG_ HVK_TN1_Sollmodus : 13|2@1+ (1,0) [0|3] "" DCDC_HV_02,FCU_MLBevo_FCEV + SG_ HVK_MO_EmSollzustand : 16|8@1+ (1,0) [0|255] "" FCU_MLBevo_FCEV + SG_ HVK_BMS_Sollmodus : 24|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV + SG_ HVK_DCDC_Sollmodus : 27|3@1+ (1,0) [0|7] "" DCDC_800V_PAG,DCDC_HV,FCU_MLBevo_FCEV,LE_MLBevo + SG_ HVK_EKK_Sollmodus : 30|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME + SG_ HVK_HVPTC_Sollmodus : 33|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME + SG_ HVK_HVLM_Sollmodus : 36|3@1+ (1,0) [0|7] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern + SG_ HVK_HV_Netz_Warnungen : 39|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV + SG_ HV_Bordnetz_aktiv : 41|1@1+ (1,0) [0|1] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo + SG_ HV_Bordnetz_Fehler : 42|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME + SG_ HVK_Gesamtst_Spgfreiheit : 43|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV + SG_ HVK_AktiveEntladung_Anf : 45|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,LE1,LE2,LE_MLBevo + SG_ HVK_Iso_Messung_Start : 50|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV + SG_ HVK_DCDC_EKK_Sollmodus : 62|2@1+ (1,0) [0|3] "" DCDC_800V_PAG,FCU_MLBevo_FCEV + +BO_ 949 Klima_11: 8 Gateway + SG_ KL_Drehz_Anh : 0|1@1+ (1,0) [0|1] "" TME + SG_ KL_Vorwarn_Komp_ein : 1|1@1+ (1,0) [0|1] "" TME + SG_ KL_AC_Schalter : 2|1@1+ (1,0) [0|1] "" TME + SG_ KL_Komp_Moment_alt : 3|1@1+ (1,0) [0|1] "" TME SG_ KL_Vorwarn_Zuheizer_ein : 6|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Zustand : 7|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ KL_Comp_rev_rq : 8|8@1+ (50,0) [0|8600] "Unit_MinutInver" Vector__XXX - SG_ KL_Charisma_FahrPr : 16|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ KL_Charisma_Status : 20|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_Comp_enable : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Last_Kompr : 24|8@1+ (0.25,0) [0|63.5] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ KL_Zustand : 7|1@1+ (1,0) [0|1] "" TME + SG_ KL_Kompressorkupplung_linear : 8|8@1+ (20,0) [0|4000] "Unit_MilliAmper" Vector__XXX + SG_ KL_Charisma_FahrPr : 16|4@1+ (1,0) [0|15] "" TME + SG_ KL_Charisma_Status : 20|2@1+ (1,0) [0|3] "" TME + SG_ KL_nachtr_Stopp_Anf : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_T_Charge : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Last_Kompr : 24|8@1+ (0.25,0) [0|63.5] "Unit_NewtoMeter" TME SG_ KL_Spannungs_Anf : 32|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_Thermomanagement : 34|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ KL_StartStopp_Info : 36|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Otto_MQB - SG_ KL_Anf_KL : 40|8@1+ (0.4,0) [0|101.6] "Unit_PerCent" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ KL_el_Zuheizer_Stufe : 48|3@1+ (1,0) [0|7] "" Motor_Diesel_MQB + SG_ KL_Thermomanagement : 34|2@1+ (1,0) [0|3] "" TME + SG_ KL_StartStopp_Info : 36|2@1+ (1,0) [0|3] "" TME + SG_ KL_Freilauf_Info : 38|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_Anf_KL : 40|8@1+ (0.4,0) [0|101.6] "Unit_PerCent" TME + SG_ KL_el_Zuheizer_Stufe : 48|3@1+ (1,0) [0|7] "" TME + SG_ KL_Ausstattung_Klima : 51|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ KL_Variante_Standheizung : 54|2@1+ (1,0) [0|3] "" Vector__XXX + +BO_ 1640 Klima_12: 8 Gateway + SG_ KL_LRH_Taster : 0|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_LRH_Stufe : 1|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HSH_Taster : 3|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ FSH_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Zuheizer_Freigabe : 6|1@1+ (1,0) [0|1] "" TME + SG_ KL_Beschlagsgefahr : 7|1@1+ (1,0) [0|1] "" TME + SG_ KL_SIH_Soll_li : 8|3@1+ (1,0) [0|7] "" TME + SG_ KL_SIH_Soll_re : 11|3@1+ (1,0) [0|7] "" TME + SG_ KRH_Soll_li : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_SIL_Soll_li : 16|3@1+ (1,0) [0|7] "" TME + SG_ KL_SIL_Soll_re : 19|3@1+ (1,0) [0|7] "" TME + SG_ KRH_Soll_re : 22|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_Geblspng_Soll : 24|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX + SG_ KL_Geblspng_Fond_Soll : 32|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX + SG_ KL_I_Geblaese : 40|8@1+ (0.25,0) [0|63.5] "Unit_Amper" Vector__XXX + SG_ KL_Kompressorstrom_soll : 48|10@1+ (1,0) [0|1021] "" TME + SG_ KL_Umluftklappe_Status : 58|4@1+ (1,0) [0|15] "" TME + SG_ KL_PTC_Verbauinfo : 62|2@1+ (1,0) [0|3] "" Vector__XXX BO_ 1520 Dimmung_01: 8 Gateway_MQB SG_ DI_KL_58xd : 0|8@1+ (1,0) [0|253] "" Airbag_MQB @@ -781,26 +941,46 @@ BO_ 1601 Motor_Code_01: 8 Motor_Diesel_MQB SG_ TSK_Codierung : 60|3@1+ (1,0) [0|7] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB SG_ MO_Einspritzart : 63|1@1+ (1,0) [0|1] "" Gateway_MQB -BO_ 1603 Einheiten_01: 8 Gateway_MQB +BO_ 1603 Einheiten_01: 8 Gateway SG_ KBI_Einheit_Datum : 0|2@1+ (1,0) [0|3] "" Vector__XXX SG_ KBI_Einheit_Druck : 2|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KBI_Einheit_Streckenanz : 4|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB + SG_ KBI_Einheit_Streckenanz : 4|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern SG_ KBI_MFA_v_Einheit_02 : 5|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KBI_Einheit_Temp : 6|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KBI_Einheit_Uhrzeit : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Einheit_Temp : 6|1@1+ (1,0) [0|1] "" TME + SG_ KBI_Einheit_Uhrzeit : 7|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern SG_ KBI_Einheit_Verbrauch : 8|2@1+ (1,0) [0|3] "" Vector__XXX SG_ KBI_Einheit_Volumen : 10|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Verbrauch_elektr : 12|3@1+ (1,0) [0|7] "" Vector__XXX SG_ KBI_Einheit_Sprache : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KBI_Einheit_Verbrauch_Gas : 24|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KBI_Einheit_Masse : 28|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 1629 ESP_20: 8 Gateway_MQB - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX +BO_ 1629 ESP_20: 8 Gateway + SG_ ESP_20_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ESP_20_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ BR_Systemart : 12|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ESP_Zaehnezahl : 16|8@1+ (1,0) [0|255] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ ESP_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Zaehnezahl : 16|8@1+ (1,0) [0|255] "" Vector__XXX SG_ ESP_Charisma_FahrPr : 24|4@1+ (1,0) [0|15] "" Vector__XXX SG_ ESP_Charisma_Status : 28|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ ESP_Wiederstart_Anz_01 : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_02 : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_03 : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_04 : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_01 : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_02 : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_03 : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_04 : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_05 : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_06 : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_07 : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_Std : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Dachrelingsensor : 42|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_08 : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HDC_Charisma_FahrPr : 45|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HDC_Charisma_Status : 49|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" AWC + SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" AWC BO_ 1413 Systeminfo_01: 8 Gateway_MQB SG_ SI_Sammel_SG_Fehler : 0|6@1+ (1,0) [0|60] "" Vector__XXX @@ -906,5 +1086,45 @@ BO_ 252 Speed_01: 48 XXX SG_ HL_Radgeschw : 104|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX SG_ HR_Radgeschw : 120|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX +BO_ 1175 Parkhilfe_01: 8 Gateway + SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC + SG_ PDC_Tonausgabe_Front : 4|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PDC_Tonausgabe_Heck : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_nachtr_Stopp_Anf : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Abschaltursache : 13|3@1+ (1,0) [0|7] "" AWC + SG_ PH_Opt_Anzeige_V_ein : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Opt_Anzeige_H_ein : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Opt_Anz_V_Hindernis : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Opt_Anz_H_Hindernis : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Tongeber_V_aktiv : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Tongeber_H_aktiv : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Tongeber_mute : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Anf_Audioabsenkung : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Tongeber_H_verfuegbar : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PLA_Anf_Aufschaltung_RVC : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Taster : 28|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PH_Anf_Verdeck : 30|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PH_Frequenz_hinten : 32|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_Lautstaerke_hinten : 36|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_Frequenz_vorn : 40|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_Lautstaerke_vorn : 44|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_StartStopp_Info : 49|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PH_Stoermeldung : 52|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_defekt : 56|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_gestoert : 57|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PH_Systemzustand : 58|3@1+ (1,0) [0|7] "" AWC + SG_ PH_Display_Kundenwunsch : 61|2@1+ (1,0) [0|3] "" Vector__XXX + +BO_ 1355 Parkhilfe_04: 8 Gateway + SG_ PH_Verschmutzungsmeldung : 12|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PH_Aufschaltursache : 16|5@1+ (1,0) [0|31] "" AWC + SG_ PH_Ton_Ausgabe : 21|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PH_Ton_Pausenlaenge : 24|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ PH_Ton_Richtung : 49|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PH_Ton_Lautstaerke : 52|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ BCM_WAH_Meldung : 55|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX + VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; From 6a13dea415851d5e0b823d07fa6b58b4ed59c364 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 18:37:14 +0200 Subject: [PATCH 038/653] Update vw_meb.dbc --- vw_meb.dbc | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index c4322064d16..14b895acacc 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -346,19 +346,6 @@ BO_ 967 Motor_26: 8 Gateway SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Vector__XXX SG_ MO_E_Mode : 61|3@1+ (1,0) [0|7] "" Vector__XXX -BO_ 869 BEM_05: 8 Gateway_MQB - SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_n_LLA : 24|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_01_Abschaltstufen : 26|3@1+ (1,0) [0|7] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_Anf_KL : 29|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_StartStopp_Info : 30|2@1+ (1,0) [0|3] "" Motor_Diesel_MQB,Motor_Otto_MQB - SG_ BEM_DFM : 32|5@1+ (3.225,0.025) [0.025|100] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_EMLIN_ungueltig : 37|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_Batt_Ab : 38|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_Segel_Info : 48|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" LEH_MQB - SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" LEH_MQB - BO_ 916 WBA_03: 8 Gateway SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway From d4c72e360f1b763e14d04615df4f56e6170d408e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 20:42:03 +0200 Subject: [PATCH 039/653] Update vw_meb.dbc add measured relevant signals --- vw_meb.dbc | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 14b895acacc..0b1a1be6eea 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1113,5 +1113,84 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX +BO_ 588 DRIVE_STATES: 16 XXX + SG_ NEW_SIGNAL_5 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 33|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 83|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 84|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 86|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 98|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX + +BO_ 589 SIDE_ASSIST: 64 XXX + SG_ NEW_SIGNAL_1 : 15|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 21|13@0+ (1,0) [0|8191] "" XXX + SG_ NEW_SIGNAL_3 : 34|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_4 : 55|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 56|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 60|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 87|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_10 : 89|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_8 : 95|4@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_11 : 97|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_41 : 105|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_13 : 116|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 119|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_14 : 121|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_15 : 135|8@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_6 : 143|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_16 : 151|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_17 : 159|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_18 : 167|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_19 : 175|16@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_20 : 191|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_21 : 262|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_22 : 270|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_23 : 279|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_24 : 286|9@0+ (1,0) [0|511] "" XXX + SG_ NEW_SIGNAL_25 : 292|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_26 : 303|10@0+ (1,0) [0|1023] "" XXX + SG_ NEW_SIGNAL_27 : 308|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_28 : 318|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_30 : 391|8@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_32 : 399|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_33 : 400|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_35 : 410|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_34 : 413|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_37 : 428|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_36 : 430|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_38 : 439|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_40 : 447|8@0+ (1,0) [0|63] "" XXX + +BO_ 591 DISTANCE: 64 XXX + SG_ NEW_SIGNAL_23 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_10 : 21|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 22|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 23|1@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_13 : 24|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 25|1@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_22 : 27|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 28|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_17 : 29|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_18 : 30|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_19 : 31|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 33|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_14 : 43|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_20 : 47|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_21 : 49|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_16 : 50|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 53|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 55|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_6 : 61|6@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_3 : 71|32@0+ (1,0) [0|4294967295] "" XXX + SG_ NEW_SIGNAL_2 : 103|32@0+ (1,0) [0|4294967295] "" XXX + SG_ NEW_SIGNAL_1 : 135|32@0+ (1,0) [0|4294967295] "" XXX + SG_ NEW_SIGNAL_26 : 199|32@0+ (1,0) [0|4294967295] "" XXX + SG_ NEW_SIGNAL_25 : 231|32@0+ (1,0) [0|4294967295] "" XXX + SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX + + + VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; From 6117291f3eedbc8f6bed5e9782101fbc141d3898 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:43:51 +0200 Subject: [PATCH 040/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0b1a1be6eea..ccde9488613 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1068,10 +1068,10 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (1,0) [0|255] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From 104c694ae61eb55287df1baaf02959d1a0aa3c81 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 21 Jun 2024 17:09:14 +0200 Subject: [PATCH 041/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ccde9488613..ab2833076af 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1068,10 +1068,10 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (1,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From 7fb5ca7a42d8764c9a3386c5ac4398a3f4dbd303 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 21 Jun 2024 18:03:26 +0200 Subject: [PATCH 042/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index ab2833076af..2c70beabf18 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1022,6 +1022,14 @@ BO_ 294 HCA_01: 8 Frontsensorik SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar +BO_ 771 LANE_ASSIST_01: 24 XXX + SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX + SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX + SG_ Data_01 : 16|7@1+ (1,0) [0|127] "" XXX + SG_ Data_02 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX + SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX + BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX From 69ebfec29dc7d1ae1a9f1ef7966b638963e43fc2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 21 Jun 2024 18:20:57 +0200 Subject: [PATCH 043/653] Update vw_meb.dbc --- vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2c70beabf18..ca5a66f5c1e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1027,6 +1027,7 @@ BO_ 771 LANE_ASSIST_01: 24 XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Data_01 : 16|7@1+ (1,0) [0|127] "" XXX SG_ Data_02 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Contact : 34|3@0+ (1,0) [0|7] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From ae6e2e568d79907e01bb9d358615ad20d895d46a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 21 Jun 2024 19:54:01 +0200 Subject: [PATCH 044/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ca5a66f5c1e..40216141aa7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -558,7 +558,7 @@ BO_ 299 GRA_ACC_01: 8 Gateway SG_ GRA_Fehler : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ GRA_LIM_Taste_verfuegbar : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ GRA_Tip_Stufe_2 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Typ_Bedienteil : 27|3@1+ (1.0,0.0) [0.0|7] "" ZR_High + SG_ GRA_ButtonTypeInfo : 27|3@1+ (1.0,0.0) [0.0|7] "" ZR_High SG_ GRA_TravelAssist : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ GRA_reserveByte4 : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX SG_ GRA_reserveByte5 : 32|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX From 4cbcac1b3d80928e12b92999bd44e3f2d9e7cc97 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 22 Jun 2024 13:10:40 +0200 Subject: [PATCH 045/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 40216141aa7..43be9d71bef 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1077,10 +1077,10 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.5,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From 678dee9b672cf0e23ce4e263dc194e43bf2cbe68 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 22 Jun 2024 21:43:02 +0200 Subject: [PATCH 046/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 43be9d71bef..e3ad5232d33 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1077,10 +1077,10 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.51,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From 21e0b46e712df06b945f7ab74e37e1a8c386c985 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 13:00:54 +0200 Subject: [PATCH 047/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index e3ad5232d33..73ca7b9ed9f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1077,10 +1077,10 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB BO_ 252 Speed_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.52,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From 7aa487eeb725bfd8288dc32eee7174b6b391748e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 16:35:10 +0200 Subject: [PATCH 048/653] Update vw_meb.dbc --- vw_meb.dbc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 73ca7b9ed9f..65a4e1d428a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1171,17 +1171,18 @@ BO_ 589 SIDE_ASSIST: 64 XXX SG_ NEW_SIGNAL_38 : 439|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_40 : 447|8@0+ (1,0) [0|63] "" XXX -BO_ 591 DISTANCE: 64 XXX +BO_ 591 ACC_01: 64 XXX SG_ NEW_SIGNAL_23 : 16|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_10 : 21|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_9 : 22|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 23|1@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_13 : 24|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_8 : 25|1@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_27 : 26|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_22 : 27|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 28|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_17 : 29|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_18 : 30|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Ready : 30|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_19 : 31|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 32|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_12 : 33|1@0+ (1,0) [0|1] "" XXX From 61ab0ec3f86bf02b593f35063679592198feb68f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 16:48:43 +0200 Subject: [PATCH 049/653] Update vw_meb.dbc add new signals --- vw_meb.dbc | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 65a4e1d428a..670f0a3e37f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1122,7 +1122,7 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX -BO_ 588 DRIVE_STATES: 16 XXX +BO_ 588 Drive_States_01: 16 XXX SG_ NEW_SIGNAL_5 : 32|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_2 : 33|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 83|1@0+ (1,0) [0|1] "" XXX @@ -1131,7 +1131,7 @@ BO_ 588 DRIVE_STATES: 16 XXX SG_ NEW_SIGNAL_7 : 98|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX -BO_ 589 SIDE_ASSIST: 64 XXX +BO_ 589 Side_Assist_01: 64 XXX SG_ NEW_SIGNAL_1 : 15|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_2 : 21|13@0+ (1,0) [0|8191] "" XXX SG_ NEW_SIGNAL_3 : 34|3@0+ (1,0) [0|7] "" XXX @@ -1171,7 +1171,7 @@ BO_ 589 SIDE_ASSIST: 64 XXX SG_ NEW_SIGNAL_38 : 439|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_40 : 447|8@0+ (1,0) [0|63] "" XXX -BO_ 591 ACC_01: 64 XXX +BO_ 591 Distance_01: 64 XXX SG_ NEW_SIGNAL_23 : 16|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_10 : 21|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_9 : 22|1@0+ (1,0) [0|1] "" XXX @@ -1200,6 +1200,43 @@ BO_ 591 ACC_01: 64 XXX SG_ NEW_SIGNAL_25 : 231|32@0+ (1,0) [0|4294967295] "" XXX SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX +BO_ 768 ACC_01: 48 XXX + SG_ NEW_SIGNAL_3 : 79|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_4 : 85|6@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Ready : 97|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_22 : 102|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 143|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_6 : 149|6@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_7 : 150|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 158|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_10 : 167|16@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_9 : 186|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 209|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_13 : 226|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 228|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_20 : 247|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_21 : 254|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_14 : 266|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_17 : 274|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_16 : 276|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 279|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_19 : 347|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_18 : 349|1@0+ (1,0) [0|1] "" XXX + +BO_ 333 ACC_02: 32 XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 11|4@0+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 31|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_4 : 34|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_6 : 59|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Ready : 61|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 71|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_8 : 74|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_9 : 87|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_10 : 92|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 232|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 235|1@0+ (1,0) [0|1] "" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; From f929218da00e6f8d7c18c1822e520598ba8a3b0c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 17:13:13 +0200 Subject: [PATCH 050/653] Update vw_meb.dbc --- vw_meb.dbc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 670f0a3e37f..0ec3dc1b0bd 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1206,18 +1206,26 @@ BO_ 768 ACC_01: 48 XXX SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Ready : 97|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_22 : 102|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 107|2@0+ (1,0) [0|3] "" XXX + SG_ ACC_Active : 113|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_24 : 120|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 143|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_6 : 149|6@0+ (1,0) [0|63] "" XXX SG_ NEW_SIGNAL_7 : 150|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_8 : 158|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_10 : 167|16@0+ (1,0) [0|65535] "" XXX SG_ NEW_SIGNAL_9 : 186|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_25 : 208|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 209|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_26 : 210|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_27 : 224|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_13 : 226|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_12 : 228|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_20 : 247|8@0+ (1,0) [0|255] "" XXX SG_ NEW_SIGNAL_21 : 254|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_29 : 265|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 266|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_28 : 268|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_17 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_16 : 276|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 279|2@0+ (1,0) [0|3] "" XXX @@ -1229,10 +1237,16 @@ BO_ 333 ACC_02: 32 XXX SG_ NEW_SIGNAL_2 : 11|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_3 : 31|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_4 : 34|3@0+ (1,0) [0|7] "" XXX + SG_ ACC_Active : 47|16@0+ (1,0) [0|65535] "" XXX + SG_ NEW_SIGNAL_14 : 57|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 59|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_13 : 60|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Ready : 61|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 62|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 71|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_8 : 74|3@0+ (1,0) [0|7] "" XXX + SG_ ACC_Active_02 : 77|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 79|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_9 : 87|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_10 : 92|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_12 : 232|1@0+ (1,0) [0|1] "" XXX From 58cec9a1e2124475cc6e508340083c32063aac47 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 18:37:02 +0200 Subject: [PATCH 051/653] Update vw_meb.dbc --- vw_meb.dbc | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0ec3dc1b0bd..b09ef5b16c3 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1201,20 +1201,30 @@ BO_ 591 Distance_01: 64 XXX SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX BO_ 768 ACC_01: 48 XXX - SG_ NEW_SIGNAL_3 : 79|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_4 : 85|6@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_41 : 66|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_4 : 69|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_42 : 73|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Set_Speed_1 : 79|4@0+ (1,1) [0|15] "" XXX + SG_ ACC_Set_Speed_2 : 85|6@0+ (5,0) [0|63] "" XXX + SG_ NEW_SIGNAL_32 : 87|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_33 : 95|8@0+ (1,0) [0|255] "" XXX SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Ready : 97|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_30 : 98|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_22 : 102|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 107|2@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_31 : 109|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 112|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Active : 113|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_24 : 120|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_18 : 121|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 143|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_6 : 149|6@0+ (1,0) [0|63] "" XXX SG_ NEW_SIGNAL_7 : 150|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_8 : 158|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_10 : 167|16@0+ (1,0) [0|65535] "" XXX SG_ NEW_SIGNAL_9 : 186|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_23 : 189|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_25 : 208|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 209|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_26 : 210|1@0+ (1,0) [0|1] "" XXX @@ -1225,16 +1235,25 @@ BO_ 768 ACC_01: 48 XXX SG_ NEW_SIGNAL_21 : 254|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_29 : 265|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 266|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_35 : 267|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_28 : 268|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_34 : 270|2@0+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_17 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_16 : 276|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 279|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_19 : 347|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_18 : 349|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_36 : 287|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_40 : 288|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_39 : 290|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_38 : 292|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_37 : 295|2@0+ (1,0) [0|3] "" XXX + SG_ ACC_Speed : 329|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_45 : 331|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_19 : 350|7@0+ (1,0) [0|15] "" XXX + BO_ 333 ACC_02: 32 XXX - SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_2 : 11|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX + SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_3 : 31|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_4 : 34|3@0+ (1,0) [0|7] "" XXX SG_ ACC_Active : 47|16@0+ (1,0) [0|65535] "" XXX From 3fe36bc746e9806d6d7a67872a69f1e356873b15 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 18:46:12 +0200 Subject: [PATCH 052/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index b09ef5b16c3..e90a8b10d62 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1204,7 +1204,7 @@ BO_ 768 ACC_01: 48 XXX SG_ NEW_SIGNAL_41 : 66|3@0+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_4 : 69|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_42 : 73|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Set_Speed_1 : 79|4@0+ (1,1) [0|15] "" XXX + SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX SG_ ACC_Set_Speed_2 : 85|6@0+ (5,0) [0|63] "" XXX SG_ NEW_SIGNAL_32 : 87|2@0+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_33 : 95|8@0+ (1,0) [0|255] "" XXX From 3c599a102c83dfb1e02ac34f957323e13af83023 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 19:20:43 +0200 Subject: [PATCH 053/653] Update vw_meb.dbc --- vw_meb.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index e90a8b10d62..2393d92bdf2 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1233,18 +1233,18 @@ BO_ 768 ACC_01: 48 XXX SG_ NEW_SIGNAL_12 : 228|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_20 : 247|8@0+ (1,0) [0|255] "" XXX SG_ NEW_SIGNAL_21 : 254|7@0+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_43 : 262|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_29 : 265|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 266|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_35 : 267|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_28 : 268|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_34 : 270|2@0+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_17 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_16 : 276|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 279|2@0+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_36 : 287|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_40 : 288|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_39 : 290|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_38 : 292|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_28 : 293|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_37 : 295|2@0+ (1,0) [0|3] "" XXX SG_ ACC_Speed : 329|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_45 : 331|1@0+ (1,0) [0|1] "" XXX From 7e9ba252bd4fba25af505e3dd37d51fdeecb794d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 20:45:32 +0200 Subject: [PATCH 054/653] Update vw_meb.dbc --- vw_meb.dbc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2393d92bdf2..bad26d22edd 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1074,13 +1074,19 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ZAS_Kl_50 : 19|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 252 Speed_01: 48 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX +BO_ 252 ESP_MEB_01: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX + SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX + SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX + SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC From bd2effecaa1b0e7392ea5fe6b0d088486153a106 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 23 Jun 2024 21:14:10 +0200 Subject: [PATCH 055/653] Update vw_meb.dbc --- vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index bad26d22edd..601c56e3185 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1129,12 +1129,12 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX BO_ 588 Drive_States_01: 16 XXX - SG_ NEW_SIGNAL_5 : 32|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_2 : 33|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 83|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 84|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 86|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 98|1@0+ (1,0) [0|1] "" XXX + SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX + SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX + SG_ Lower_Speed_02 : 84|1@0+ (1,0) [0|1] "" XXX + SG_ Standstill : 86|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 98|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX BO_ 589 Side_Assist_01: 64 XXX From a276eb3fce50fc42407137f8c197ebdfe2c26f81 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 24 Jun 2024 19:52:33 +0200 Subject: [PATCH 056/653] Update vw_meb.dbc --- vw_meb.dbc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 601c56e3185..61475165063 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1022,15 +1022,6 @@ BO_ 294 HCA_01: 8 Frontsensorik SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar -BO_ 771 LANE_ASSIST_01: 24 XXX - SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX - SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ Data_01 : 16|7@1+ (1,0) [0|127] "" XXX - SG_ Data_02 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Contact : 34|3@0+ (1,0) [0|7] "" XXX - SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX - SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX - BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX @@ -1128,7 +1119,16 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX -BO_ 588 Drive_States_01: 16 XXX +BO_ 771 MEB_Lane_Assist_01: 24 XXX + SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX + SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX + SG_ Data_01 : 16|7@1+ (1,0) [0|127] "" XXX + SG_ Data_02 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Contact : 34|3@0+ (1,0) [0|7] "" XXX + SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX + SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX + +BO_ 588 MEB_Drive_State_01: 16 XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX @@ -1137,7 +1137,7 @@ BO_ 588 Drive_States_01: 16 XXX SG_ NEW_SIGNAL_1 : 98|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX -BO_ 589 Side_Assist_01: 64 XXX +BO_ 589 MEB_Side_Assist_01: 64 XXX SG_ NEW_SIGNAL_1 : 15|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_2 : 21|13@0+ (1,0) [0|8191] "" XXX SG_ NEW_SIGNAL_3 : 34|3@0+ (1,0) [0|7] "" XXX @@ -1177,7 +1177,7 @@ BO_ 589 Side_Assist_01: 64 XXX SG_ NEW_SIGNAL_38 : 439|7@0+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_40 : 447|8@0+ (1,0) [0|63] "" XXX -BO_ 591 Distance_01: 64 XXX +BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_23 : 16|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_10 : 21|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_9 : 22|1@0+ (1,0) [0|1] "" XXX @@ -1206,7 +1206,7 @@ BO_ 591 Distance_01: 64 XXX SG_ NEW_SIGNAL_25 : 231|32@0+ (1,0) [0|4294967295] "" XXX SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX -BO_ 768 ACC_01: 48 XXX +BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_41 : 66|3@0+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_4 : 69|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_42 : 73|1@0+ (1,0) [0|1] "" XXX @@ -1257,7 +1257,7 @@ BO_ 768 ACC_01: 48 XXX SG_ NEW_SIGNAL_19 : 350|7@0+ (1,0) [0|15] "" XXX -BO_ 333 ACC_02: 32 XXX +BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_3 : 31|7@0+ (1,0) [0|127] "" XXX From e483a380814cb300b292a3766b17be2b9d3927d1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 24 Jun 2024 19:54:19 +0200 Subject: [PATCH 057/653] Update vw_meb.dbc --- vw_meb.dbc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 61475165063..4dde453e42c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1065,20 +1065,6 @@ BO_ 960 Klemmen_Status_01: 4 Gateway_MQB SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ZAS_Kl_50 : 19|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 252 ESP_MEB_01: 48 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX - SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX - SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX - SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX - SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX - BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC SG_ PDC_Tonausgabe_Front : 4|4@1+ (1,0) [0|15] "" Vector__XXX @@ -1119,6 +1105,20 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX +BO_ 252 MEB_ESP_01: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX + SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX + SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX + SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX + BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX From a45992416f2b90ed60b883231baea22fd252597a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 24 Jun 2024 21:25:03 +0200 Subject: [PATCH 058/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 4dde453e42c..b0e45592ade 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1222,7 +1222,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_31 : 109|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_3 : 112|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Active : 113|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_24 : 120|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Faultless : 120|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_18 : 121|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 143|4@0+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_6 : 149|6@0+ (1,0) [0|63] "" XXX From 75af966c0e7b736b5f5dd0e005e4d781ce850932 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 15:34:34 +0200 Subject: [PATCH 059/653] Update vw_meb.dbc --- vw_meb.dbc | 69 ++++-------------------------------------------------- 1 file changed, 5 insertions(+), 64 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index b0e45592ade..f184ade9e25 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1207,75 +1207,16 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ NEW_SIGNAL_41 : 66|3@0+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_4 : 69|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_42 : 73|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX SG_ ACC_Set_Speed_2 : 85|6@0+ (5,0) [0|63] "" XXX - SG_ NEW_SIGNAL_32 : 87|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_33 : 95|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_2 : 96|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Ready : 97|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_30 : 98|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_22 : 102|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 107|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_31 : 109|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 112|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Active : 113|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Faultless : 120|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_18 : 121|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 143|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_6 : 149|6@0+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_7 : 150|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_8 : 158|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_10 : 167|16@0+ (1,0) [0|65535] "" XXX - SG_ NEW_SIGNAL_9 : 186|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_23 : 189|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_25 : 208|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_11 : 209|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_26 : 210|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_27 : 224|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_13 : 226|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 228|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_20 : 247|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_21 : 254|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_43 : 262|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_29 : 265|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_14 : 266|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_35 : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_34 : 270|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_17 : 274|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_16 : 276|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 279|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_36 : 287|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_40 : 288|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_28 : 293|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_37 : 295|2@0+ (1,0) [0|3] "" XXX - SG_ ACC_Speed : 329|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_45 : 331|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_19 : 350|7@0+ (1,0) [0|15] "" XXX - BO_ 333 MEB_ACC_02: 32 XXX - SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_3 : 31|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_4 : 34|3@0+ (1,0) [0|7] "" XXX - SG_ ACC_Active : 47|16@0+ (1,0) [0|65535] "" XXX - SG_ NEW_SIGNAL_14 : 57|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_6 : 59|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_13 : 60|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Ready : 61|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 62|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 71|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_8 : 74|3@0+ (1,0) [0|7] "" XXX - SG_ ACC_Active_02 : 77|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 79|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_9 : 87|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_10 : 92|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 232|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_11 : 235|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Ready : 59|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Active : 60|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Main_On : 61|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_State_Transition : 62|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Active_Request : 90|1@0+ (1,0) [0|1] "" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; From a46f3f2cba41761b17fef170c7ef93a9a4697a65 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:01:41 +0200 Subject: [PATCH 060/653] Update vw_meb.dbc fix meb_acc_02 with measured acc state --- vw_meb.dbc | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f184ade9e25..5776513712b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1212,12 +1212,9 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX BO_ 333 MEB_ACC_02: 32 XXX - SG_ ACC_Ready : 59|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Active : 60|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Main_On : 61|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_State_Transition : 62|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Active_Request : 90|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_State : 62|3@0+ (1,0) [0|31] "" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; +VAL_ 333 ACC_State 0 "disabled" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 7 "fault" ; From 2166e10168a57f395faf8b14bcda106dcdd5f696 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:08:07 +0200 Subject: [PATCH 061/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5776513712b..c24288d2152 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1217,4 +1217,4 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; -VAL_ 333 ACC_State 0 "disabled" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 7 "fault" ; +VAL_ 333 ACC_State 0 "disabled" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; From cbb1042b88a449610fdc412ddddca9bea05d973e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:14:21 +0200 Subject: [PATCH 062/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index c24288d2152..5556770178f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1217,4 +1217,4 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; -VAL_ 333 ACC_State 0 "disabled" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; +VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; From 76f56b5f1054d385925657602d8188602f19df02 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 16:32:45 +0200 Subject: [PATCH 063/653] Update vw_meb.dbc adapt gear shifter value --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5556770178f..c2274f919f6 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1215,6 +1215,6 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_State : 62|3@0+ (1,0) [0|31] "" XXX -VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; +VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "B" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; From a951eaf878bec1b94e3daccde38388ef63ec33fb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:45:09 +0200 Subject: [PATCH 064/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index c2274f919f6..b3540d647a5 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1110,10 +1110,10 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX - SG_ VL_Radgeschw : 72|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.53,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX From 07d6d16593cdfc22815203b60253d8858e5a6121 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:39:53 +0200 Subject: [PATCH 065/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index b3540d647a5..0bdc1584e67 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1215,6 +1215,6 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_State : 62|3@0+ (1,0) [0|31] "" XXX -VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "B" 10 "E" 13 "T" 14 "T" ; +VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; From 5d36a358d033ff7510109d0f4d5d9345c0bab9ac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 18:57:31 +0200 Subject: [PATCH 066/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0bdc1584e67..891bc7533a7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1110,10 +1110,10 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX - SG_ VL_Radgeschw : 72|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.54,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 72|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VR_Radgeschw : 88|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HL_Radgeschw : 104|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ HR_Radgeschw : 120|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX From 98f0f7db73dca53e40933895e89061b25befe6be Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:40:31 +0200 Subject: [PATCH 067/653] Update vw_meb.dbc --- vw_meb.dbc | 369 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 369 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 891bc7533a7..dab01e47cf6 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -844,6 +844,24 @@ BO_ 976 TSG_FT_01: 8 Gateway SG_ SWA_HMI_Diagnose : 60|2@1+ (1,0) [0|3] "" Vector__XXX SG_ FS_Status_eTAG : 62|2@1+ (1,0) [0|3] "" Vector__XXX +BO_ 997 TSG_FT_02: 8 Gateway + SG_ TSG_FT_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ TSG_FT_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ FT_Tuer_Status : 12|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High + SG_ FT_Tuer_Status_QBit : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Lock_Taster_02 : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Schluesselschalter_zu_02 : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_BFS_Tuer_Status : 17|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ FT_HBFS_Tuer_Status : 19|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ FT_HFS_Tuer_Status : 21|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ FT_Tueroeffnen_Warnung : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FT_SP_Heizung_ein : 24|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FT_Kisi_Taster_li_02 : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_Kisi_Taster_re_02 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ FT_TD_Taste_Status : 27|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ FT_TCR_Mode_aktiv : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ FS_Push_Tuergriff : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + BO_ 64 Airbag_01: 8 Gateway SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway SG_ Airbag_01_BZ : 8|4@1+ (1,0) [0|15] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway @@ -993,6 +1011,345 @@ BO_ 1413 Systeminfo_01: 8 Gateway_MQB SG_ SI_BUS_13 : 28|1@1+ (1,0) [0|1] "" Vector__XXX SG_ SI_BUS_14 : 29|1@1+ (1,0) [0|1] "" Vector__XXX SG_ SI_BUS_15 : 30|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 891 GNSS_05: 8 Gateway + SG_ GNSS_UTC_Zeit : 0|32@1+ (1,0) [1|4294967295] "Unit_Secon" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Empfaenger_Status : 32|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_GPS_in_Nutzung : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_GLONASS_in_Nutzung : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Empfangbare_Satelliten : 35|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Sichtbare_Satelliten : 40|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Genutzte_Satelliten : 45|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Nachrichtenpaket_ID5 : 50|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 888 GNSS_04: 8 Gateway + SG_ GNSS_Nachrichtenpaket_ID4 : 0|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Ortung_Zeit_in_GPSWoche : 2|30@1+ (1,0) [0|604800001] "Unit_MilliSecon" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Ortung_Hoehe : 32|12@1+ (2,-500) [-500|7686] "Unit_Meter" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 1524 Innenlicht_11: 8 Gateway + SG_ IL_Dimmung_V_Tuerkontur : 0|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_H_Tuerkontur : 8|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_Tuerinnengriff : 16|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_Umfeldbel : 24|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Bel_FS_Ausstieg : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ IL_Bel_BFS_Ausstieg : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ IL_Bel_HFS_Ausstieg : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ IL_Bel_HBFS_Ausstieg : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Innenlicht_gedimmt_V : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Innenlicht_gedimmt_H : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ IL_Innenlicht_aktiv : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ IL_Klemme_30G_aktiv : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_DI_Rampe_Innenlicht : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_DI_Rampe_Leselicht : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Innenlicht_H : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Innenlicht_V : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_hl : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_hr : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_vl : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_vr : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BCM1_Leuchten_Aus : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ AMB_Charisma_FahrPr : 49|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ AMB_Charisma_Status : 53|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ IL_Dimmung_Lautspr : 56|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + +BO_ 1624 Licht_vorne_01: 8 Gateway + SG_ Licht_Vorne_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Licht_Vorne_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LV_Standlicht_Anzeige : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Abblendlicht_Anzeige : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Fernlicht_Anzeige : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Nebellicht_Anzeige : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Nebelschlusslicht_Anzeige : 16|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Tagfahrlicht_Anzeige : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,OTA_FC,ZR_High + SG_ LV_AFL_aktiv_Anzeige : 18|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,OTA_FC,ZR_High + SG_ LV_AFL_defekt : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Blinker_li_def : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Standlicht_li_def : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblendlicht_li_def : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Fernlicht_li_def : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Nebellicht_li_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Blk_li_Seite_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Tagfahrlicht_li_def : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_FLA_aktiv_Anzeige : 27|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_FLA_defekt : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_FLA_Sensor_blockiert : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Blinker_re_def : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Standlicht_re_def : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblendlicht_re_def : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Fernlicht_re_def : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Nebellicht_re_def : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Blk_re_Seite_def : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Tagfahrlicht_re_def : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Aussenlicht_def : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblendlicht_TFL_li_def : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Nebellicht_TFL_li_def : 39|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Standlicht_TFL_li_def : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblend_Fernlicht_li_def : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblendlicht_TFL_re_def : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Nebellicht_TFL_re_def : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Standlicht_TFL_re_def : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abblend_Fernlicht_re_def : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LV_Abbiegelicht_li_def : 46|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LV_Abbiegelicht_re_def : 47|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ BCM1_Linksverkehr : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ BCM1_Licht_Dunkelheit_aktiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_LED_Scheinwerfer_li_def : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LV_LED_Scheinwerfer_re_def : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LV_Blinker_VL_aktiv : 52|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_Blinker_VR_aktiv : 53|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LV_MXB_Status_Anzeige : 54|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + +BO_ 982 Licht_hinten_01: 8 Gateway + SG_ BCM2_Bremsl_durch_ECD : 5|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Aussenlicht_def : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Standlicht_H_aktiv : 8|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Parklicht_HL_aktiv : 9|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Parklicht_HR_aktiv : 10|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Bremslicht_H_aktiv : 11|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Nebelschluss_aktiv : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Rueckfahrlicht_aktiv : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_HL_akt : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_HR_akt : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_li_def : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Bremsl_li_def : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schlusslicht_li_def : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Rueckf_li_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Nebel_li_def : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schluss_Brems_Nebel_li_def : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schluss_Brems_Nebel_re_def : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Zusatzschlussl_def : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_li_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schluss_Nebel_li_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_SL_BRL_BLK_li_def : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Brems_Blk_li_def : 27|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LH_Diag_Status_re_def : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Diag_Status_li_def : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Diag_LED_li_def : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Diag_LED_re_def : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Blinker_re_def : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Bremsl_re_def : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schlusslicht_re_def : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Rueckf_re_def : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Nebel_re_def : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schluss_Brems_mi_def : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_re_def : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schluss_Nebel_re_def : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_SL_BRL_BLK_re_def : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Brems_Blk_re_def : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Kennzl_def : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_3_Bremsl_def : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Nebel_mi_def : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Rueckf_mi_def : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Schlusslicht_mi_def : 52|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LH_Bremsl_mi_def : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + +BO_ 817 MFL_01: 8 Gateway + SG_ MFL_Zaehler : 0|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Toggle : 4|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MFL_Lokalaktiv : 5|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MFL_M_Taste : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Paddle_Verbau : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Tastencode_1 : 8|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ MFL_Tastencode_2 : 16|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ MFL_Eventcode_1 : 24|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ MFL_Eventcode_2 : 28|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ MFL_Marke : 32|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ MFL_Variante : 36|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Dummy_0_Signal_1 : 40|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX + SG_ MFL_Tip_Down : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Tip_Up : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_SatModul_links_Err : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_SatModul_rechts_Err : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Dummy_0_Signal_2 : 52|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MFL_Dummy_0_Signal_3 : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MFL_LR_HZG_Status : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_LR_HZG_Err : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Signalhorn : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ MFL_Signalhorn_Err : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Tip_links_Err : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Tip_rechts_Err : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Taste_links_Err : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Taste_rechts_Err : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_ECU_Err : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MFL_Response_Err : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + +BO_ 706 Motor_41: 8 Gateway + SG_ MO_Anzeige_StSt_Text : 12|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ MO_Anzeige_StSt_Symbol : 16|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ MO_ADR_Status : 19|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ MO_AGA_Sound_Texte : 21|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Anzeige_FMAus_Text : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_Fehler_MSpG : 24|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ PEA_Texte : 25|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ TSK_Ueberstimmt_vMax_FahrerInfo : 28|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Avus_Motorschutz : 30|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Rekuperationsstufe : 32|3@1+ (1.0,0.0) [0.0|7] "" OTA_FC + SG_ TSK_Einheit_vMax_FahrerInfo : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ TSK_Status_vMax_FahrerInfo : 36|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Red_Fahrleistung : 38|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ MO_Anz_Kuehlerluefter : 47|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ MO_im_Leerlauf : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ WIV_Enable_Oeldr_Motor : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_OelMessung_Dauer : 52|4@1+ (15,15) [15|225] "Unit_Secon" Vector__XXX + SG_ TSK_vMax_FahrerInfo : 56|8@1+ (1,15) [16|270] "" Vector__XXX + +BO_ 1122 PSD_04: 8 ZR_High + SG_ PSD_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Vorgaenger_Segment_ID : 6|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Segmentlaenge : 12|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Strassenkategorie : 19|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Endkruemmung : 22|8@1+ (1,0) [0|254] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Endkruemmung_Vorz : 30|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Idenditaets_ID : 31|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_ADAS_Qualitaet : 37|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_wahrscheinlichster_Pfad : 38|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Geradester_Pfad : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Fahrspuren_Anzahl : 40|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Bebauung : 43|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Segment_Komplett : 44|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Rampe : 45|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Anfangskruemmung : 47|8@1+ (1,0) [0|254] "" Gateway,Gateway_PAG + SG_ PSD_Anfangskruemmung_Vorz : 55|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Abzweigerichtung : 56|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Abzweigewinkel : 57|7@1+ (1.417323,0) [0.000000|180.000021] "" Gateway,Gateway_PAG + +BO_ 1123 PSD_05: 8 ZR_High + SG_ PSD_Pos_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Segmentlaenge : 6|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Pos_Inhibitzeit : 13|5@1+ (10,0) [0|310] "Unit_MilliSecon" Gateway,Gateway_PAG + SG_ PSD_Pos_Standort_Eindeutig : 18|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Fehler_Laengsrichtung : 19|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Fahrspur : 22|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Attribut_Segment_ID_05 : 25|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_ID : 31|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_Wert : 36|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_Offset : 40|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_ID : 47|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_Wert : 52|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_Offset : 56|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribute_Komplett_05 : 63|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + +BO_ 1124 PSD_06: 8 ZR_High + SG_ PSD_06_Mux M : 0|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Segment_ID m0 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_Segment_ID m1 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Segment_ID m2 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Laenge_VZ m3 : 3|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_Segment_ID m4 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Laenge m3 : 4|25@1+ (0.00001,0) [0.00000|180.00000] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Sys_Laendercode m0 : 9|8@1+ (1.0,0.0) [0.0|255] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_ID m1 : 9|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Offset m2 : 9|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_A_Steigung m4 : 9|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_Offset m1 : 14|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit m2 : 16|5@1+ (1.0,0.0) [0.0|31] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Steigung_1_A_Vorz m4 : 16|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geschwindigkeit_Einheit m0 : 17|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_A_Offset m4 : 17|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Sys_Verkehrsrichtung m0 : 18|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geometrieguete m0 : 19|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Mapmatchingguete m0 : 21|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_Wert m1 : 21|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Typ m2 : 21|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Alter_Karte m0 : 23|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Spur_Geschw_Begrenzung m2 : 23|6@1+ (1.0,0.0) [0.0|63] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Steigung m4 : 24|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_ID m1 : 25|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Zielfuehrung m0 : 26|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Sys_US_State m0 : 27|6@1+ (1.0,0.0) [0.0|63] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Gespann m2 : 29|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Breite_VZ m3 : 29|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_Wert m1 : 30|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Breite m3 : 30|24@1+ (0.00001,0) [0.00000|90.00000] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Witter m2 : 31|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Vorz m4 : 31|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Offset m4 : 32|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Geometrien m0 : 33|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Tag_Anf m2 : 33|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_Offset m1 : 34|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Ortsinfo m0 : 36|2@1+ (1,0) [0|3] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Tag_Ende m2 : 36|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_verfuegbar m0 : 38|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Zielfuehrung_geaendert m0 : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Std_Anf m2 : 39|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_Attribute_kompl m4 : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geometrieguete_erweitert m0 : 40|8@1+ (1.0,0.0) [0.0|255] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Segment_ID m4 : 40|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_ID m1 : 41|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Std_Ende m2 : 44|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_Offset m1 : 46|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Steigung m4 : 46|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_sonstige_Attribute m0 : 48|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Ges_Ueberholverbot m2 : 49|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Steigungen m0 : 51|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Wechselverkehrszeichen m2 : 51|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_Wert m1 : 53|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Vorz m4 : 53|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Strassenkennz m0 : 54|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Wechselverkehrszeichen_Typ m2 : 54|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Ausrichtung m3 : 54|10@1+ (0.3515625,0) [0E-7|359.6484375] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Offset m4 : 54|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Ges_Gesetzlich_Kategorie m2 : 56|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Tempolimits m0 : 57|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Attribute_Komplett_06 m1 : 57|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Gesetzlich_Zusatz m2 : 59|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Vorfahrtsregelung m0 : 60|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Ges_Verkehrszeichen_Quelle m2 : 61|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Attribute_kompl m4 : 61|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Attribute_Komplett m2 : 63|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + +BO_ 980 SMLS_01: 8 Gateway + SG_ SMLS_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ SMLS_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BH_Blinker_li : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard + SG_ BH_Blinker_re : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard + SG_ BH_Lichthupe : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BH_Fernlicht : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Tipwischen : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Intervall : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_WischerStufe1 : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_WischerStufe2 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Frontwaschen : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Heckintervall : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Heckwaschen : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ WH_Intervallstufen : 23|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ FAS_Taster : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard + SG_ FAS_Taster_Fehler : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SMLS_Hupe : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ LRH_On_Off : 30|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ LRH_aktiv : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SMLS_P_verriegelt_plausibel : 43|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ WH_SRA : 44|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ WH_Wischer_Fehler : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ BH_Blinker_Fehler : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SMLS_PTT : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ WH_Tipwischen_lang : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + +BO_ 1710 Spiegel_01: 8 Gateway + SG_ SP_FT_oben : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_FT_unten : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_FT_links : 2|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_FT_rechts : 3|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_BT_oben : 4|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_BT_unten : 5|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_BT_links : 6|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_BT_rechts : 7|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_abklappen : 8|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_anklappen : 9|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_normieren : 10|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_Hzg_Taster : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ SP_S_oben : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_S_unten : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_S_links : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_S_rechts : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_Auswahl_li : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_Auswahl_re : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_ARA_Status : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_S_Klappen : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ SP_Verstellschalter_Fehler : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High BO_ 605 KLR_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -1006,6 +1363,18 @@ BO_ 605 KLR_01: 8 Gateway SG_ KLR_Touchintensitaet_3 : 32|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX SG_ KLR_Touchauswertung : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High +BO_ 1440 RLS_01: 8 Gateway + SG_ LS_Helligkeit_IR : 0|8@1+ (400,0) [0|101200] "Unit_Lux" ZR_High + SG_ LS_Helligkeit_FW : 8|10@1+ (6,0) [0|6126] "Unit_Lux" ZR_High + SG_ LS_defekt : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ LS_Verbau : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ RS_Regenmenge : 24|4@1+ (10,0) [0|100] "Unit_PerCent" OTA_FC,ZR_High + SG_ RS_Verbau : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ RS_Verglasung_schliessen : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ RS_defekt : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ RS_Wischergeschwindigkeit : 32|3@1+ (1.0,0.0) [0.0|7] "" OTA_FC,ZR_High + SG_ RLS_Vorfeldhelligkeit_Boost : 35|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + BO_ 294 HCA_01: 8 Frontsensorik SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX From a7f3ebc44a00534a408b3016e266a93a7b6960d0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 19:57:47 +0200 Subject: [PATCH 068/653] Update vw_meb.dbc --- vw_meb.dbc | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index dab01e47cf6..c787fa37172 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -470,45 +470,6 @@ BO_ 870 Blinkmodi_02: 8 Gateway SG_ BM_PiloPa : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High -BO_ 982 Licht_hinten_01: 8 Gateway_MQB - SG_ Licht_hinten_01_BZ : 0|4@1+ (1,0) [0|15] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BCM2_Bremsl_durch_ECD : 5|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ LH_Aussenlicht_def : 7|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Standlicht_H_aktiv : 8|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Parklicht_HL_aktiv : 9|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Parklicht_HR_aktiv : 10|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Bremslicht_H_aktiv : 11|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Nebelschluss_aktiv : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Rueckfahrlicht_aktiv : 13|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Blinker_HL_akt : 14|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Blinker_HR_akt : 15|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Blinker_li_def : 16|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Bremsl_li_def : 17|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schlusslicht_li_def : 18|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Rueckf_li_def : 19|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Nebel_li_def : 20|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_Nebel_li_def : 21|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_Nebel_re_def : 22|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_li_def : 24|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Nebel_li_def : 25|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_SL_BRL_BLK_li_def : 26|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Brems_Blk_li_def : 27|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Blinker_re_def : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Bremsl_re_def : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schlusslicht_re_def : 34|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Rueckf_re_def : 35|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Nebel_re_def : 36|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_re_def : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Schluss_Nebel_re_def : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_SL_BRL_BLK_re_def : 42|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Brems_Blk_re_def : 43|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Kennzl_def : 48|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_3_Bremsl_def : 49|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ LH_Nebel_mi_def : 50|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Rueckf_mi_def : 51|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - BO_ 987 Gateway_72: 8 Gateway_MQB SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB SG_ SMLS_01_alt : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB From 844675b2b0236cb113ff4cbde463620c13380800 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 20:13:28 +0200 Subject: [PATCH 069/653] Update vw_meb.dbc --- vw_meb.dbc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index c787fa37172..b8c53145856 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1449,6 +1449,9 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX +BO_ 192 MEB_ESP_02: 32 XXX + SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX + BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX From ab5deac0b076e8a694ac019ef6699abe6afd3e17 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 20:18:26 +0200 Subject: [PATCH 070/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index b8c53145856..acb5ece8b60 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1450,6 +1450,8 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX + SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX + SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX From 1ca70883035a58ee127e0981f4aab0f403b057f0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 25 Jun 2024 21:17:26 +0200 Subject: [PATCH 071/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index acb5ece8b60..d2709074479 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1550,6 +1550,6 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_State : 62|3@0+ (1,0) [0|31] "" XXX -VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "S" 10 "E" 13 "T" 14 "T" ; +VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; From 04a20a508dce9d0480cad261b5ccbf7304c6d2db Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 19:27:28 +0200 Subject: [PATCH 072/653] Update dbc.cc add meb checksum with mqb reference --- can/dbc.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/can/dbc.cc b/can/dbc.cc index 44454b15f82..d3060af5e7b 100644 --- a/can/dbc.cc +++ b/can/dbc.cc @@ -59,6 +59,8 @@ ChecksumState* get_checksum(const std::string& dbc_name) { s = new ChecksumState({16, -1, 0, -1, true, HKG_CAN_FD_CHECKSUM, &hkg_can_fd_checksum}); } else if (startswith(dbc_name, "vw_mqb_2010")) { s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MQB_CHECKSUM, &volkswagen_mqb_checksum}); + } else if (startswith(dbc_name, "vw_meb")) { + s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MQB_CHECKSUM, &volkswagen_mqb_checksum}); } else if (startswith(dbc_name, "vw_golf_mk4")) { s = new ChecksumState({8, 4, 0, -1, true, XOR_CHECKSUM, &xor_checksum}); } else if (startswith(dbc_name, "subaru_global_")) { From f9bb657fe1d14b1c4fd225afdd2862323b195f21 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 19:37:47 +0200 Subject: [PATCH 073/653] Update common.cc --- can/common.cc | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/can/common.cc b/can/common.cc index f7884adfbb4..96744fa35be 100644 --- a/can/common.cc +++ b/can/common.cc @@ -213,6 +213,107 @@ unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector return checksum; } +unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const std::vector &d) { + // Volkswagen uses standard CRC8 8H2F/AUTOSAR, but they compute it with + // a magic variable padding byte tacked onto the end of the payload. + // https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf + + uint8_t crc = 0xFF; // Standard init value for CRC8 8H2F/AUTOSAR + + // CRC the payload first, skipping over the first byte where the CRC lives. + for (int i = 1; i < d.size(); i++) { + crc ^= d[i]; + crc = crc8_lut_8h2f[crc]; + } + + // Look up and apply the magic final CRC padding byte, which permutes by CAN + // address, and additionally (for SOME addresses) by the message counter. + uint8_t counter = d[1] & 0x0F; + switch (address) { + case 0x86: // LWI_01 Steering Angle + crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; + break; + case 0x9F: // LH_EPS_03 Electric Power Steering + crc ^= (uint8_t[]){0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}[counter]; + break; + case 0xAD: // Getriebe_11 Automatic Gearbox + crc ^= (uint8_t[]){0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}[counter]; + break; + case 0xFD: // ESP_21 Electronic Stability Program + crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; + break; + case 0x106: // ESP_05 Electronic Stability Program + crc ^= (uint8_t[]){0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07}[counter]; + break; + case 0x117: // ACC_10 Automatic Cruise Control + crc ^= (uint8_t[]){0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16}[counter]; + break; + case 0x120: // TSK_06 Drivetrain Coordinator + crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; + break; + case 0x31E: // TSK_07 Drivetrain Coordinator + crc ^= (uint8_t[]){0x78, 0x68, 0x3A, 0x31, 0x16, 0x08, 0x4F, 0xDE, 0xF7, 0x35, 0x19, 0xE6, 0x28, 0x2F, 0x59, 0x82}[counter]; + break; + case 0x121: // Motor_20 Driver Throttle Inputs + crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; + break; + case 0x122: // ACC_06 Automatic Cruise Control + crc ^= (uint8_t[]){0x37, 0x7D, 0xF3, 0xA9, 0x18, 0x46, 0x6D, 0x4D, 0x3D, 0x71, 0x92, 0x9C, 0xE5, 0x32, 0x10, 0xB9}[counter]; + break; + case 0x126: // HCA_01 Heading Control Assist + crc ^= (uint8_t[]){0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}[counter]; + break; + case 0x12B: // GRA_ACC_01 Steering wheel controls for ACC + crc ^= (uint8_t[]){0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}[counter]; + break; + case 0x12E: // ACC_07 Automatic Cruise Control + crc ^= (uint8_t[]){0xF8, 0xE5, 0x97, 0xC9, 0xD6, 0x07, 0x47, 0x21, 0x66, 0xDD, 0xCF, 0x6F, 0xA1, 0x94, 0x74, 0x63}[counter]; + break; + case 0x187: // EV_Gearshift "Gear" selection data for EVs with no gearbox + crc ^= (uint8_t[]){0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}[counter]; + break; + case 0x2A9: // ACC_15 Front Collision Warning + crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; + break; + case 0x30C: // ACC_02 Automatic Cruise Control + crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; + break; + case 0x30F: // SWA_01 Lane Change Assist (SpurWechselAssistent) + crc ^= (uint8_t[]){0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C}[counter]; + break; + case 0x324: // ACC_04 Automatic Cruise Control + crc ^= (uint8_t[]){0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27}[counter]; + break; + case 0x3C0: // Klemmen_Status_01 ignition and starting status + crc ^= (uint8_t[]){0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}[counter]; + break; + case 0x65D: // ESP_20 Electronic Stability Program + crc ^= (uint8_t[]){0xAC, 0xB3, 0xAB, 0xEB, 0x7A, 0xE1, 0x3B, 0xF7, 0x73, 0xBA, 0x7C, 0x9E, 0x06, 0x5F, 0x02, 0xD9}[counter]; + break; + default: // As-yet undefined CAN message, CRC check expected to fail + printf("Attempt to CRC check undefined Volkswagen message 0x%02X\n", address); + crc ^= (uint8_t[]){0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}[counter]; + break; + } + crc = crc8_lut_8h2f[crc]; + + return crc ^ 0xFF; // Return after standard final XOR for CRC8 8H2F/AUTOSAR +} + +unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector &d) { + uint8_t checksum = 0; + int checksum_byte = sig.start_bit / 8; + + // Simple XOR over the payload, except for the byte where the checksum lives. + for (int i = 0; i < d.size(); i++) { + if (i != checksum_byte) { + checksum ^= d[i]; + } + } + + return checksum; +} + unsigned int pedal_checksum(uint32_t address, const Signal &sig, const std::vector &d) { uint8_t crc = 0xFF; uint8_t poly = 0xD5; // standard crc8 From 96472743033bb0c79b8c7f993f60bf78c9e47a12 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 19:52:57 +0200 Subject: [PATCH 074/653] Update common.cc.... --- can/common.cc | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/can/common.cc b/can/common.cc index 96744fa35be..2cbf9d8163d 100644 --- a/can/common.cc +++ b/can/common.cc @@ -300,20 +300,6 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const return crc ^ 0xFF; // Return after standard final XOR for CRC8 8H2F/AUTOSAR } -unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector &d) { - uint8_t checksum = 0; - int checksum_byte = sig.start_bit / 8; - - // Simple XOR over the payload, except for the byte where the checksum lives. - for (int i = 0; i < d.size(); i++) { - if (i != checksum_byte) { - checksum ^= d[i]; - } - } - - return checksum; -} - unsigned int pedal_checksum(uint32_t address, const Signal &sig, const std::vector &d) { uint8_t crc = 0xFF; uint8_t poly = 0xD5; // standard crc8 From 25c444b6b26e9cc0968914e9d4395148a08338d1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:22:12 +0200 Subject: [PATCH 075/653] Update vw_meb.dbc --- vw_meb.dbc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index d2709074479..a82e82a0839 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1444,10 +1444,10 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ VR_Radgeschw : 88|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX SG_ HL_Radgeschw : 104|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX SG_ HR_Radgeschw : 120|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VL_Brake_Pressure : 156|5@0+ (1,0) [0|15] "" XXX - SG_ VR_Brake_Pressure : 164|5@0+ (1,0) [0|15] "" XXX - SG_ HL_Brake_Pressure : 172|5@0+ (1,0) [0|15] "" XXX - SG_ HR_Brake_Pressure : 180|5@0+ (1,0) [0|15] "" XXX + SG_ VL_Brake_Pressure : 157|6@0+ (1,0) [0|15] "" XXX + SG_ VR_Brake_Pressure : 165|6@0+ (1,0) [0|15] "" XXX + SG_ HL_Brake_Pressure : 173|6@0+ (1,0) [0|15] "" XXX + SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX @@ -1544,6 +1544,7 @@ BO_ 591 MEB_Distance_01: 64 XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX SG_ ACC_Set_Speed_2 : 85|6@0+ (5,0) [0|63] "" XXX + SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX BO_ 333 MEB_ACC_02: 32 XXX From 93e7232368880f923718dd6cd4be72f1a73d8c86 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 20:48:27 +0200 Subject: [PATCH 076/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a82e82a0839..75fa83c8d1b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1450,8 +1450,8 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX - SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX From 53bdb1b45edd77632aee93c4488176c761463c5e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:00:36 +0200 Subject: [PATCH 077/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 75fa83c8d1b..a4c093c193a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1436,8 +1436,8 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX BO_ 252 MEB_ESP_01: 48 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MEB_ESP_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MEB_ESP_01_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX SG_ VL_Radgeschw : 72|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX @@ -1450,8 +1450,8 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MEB_ESP_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MEB_ESP_02_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX From aea7c1331b802b86e4f2646797d710ba6e34cd11 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:06:49 +0200 Subject: [PATCH 078/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a4c093c193a..6a8736016e4 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1388,8 +1388,8 @@ BO_ 919 LDW_02: 8 XXX SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX BO_ 960 Klemmen_Status_01: 4 Gateway_MQB - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Klemmen_Status_01_CRC : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Klemmen_Status_01_COUNT : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB SG_ ZAS_Kl_S : 16|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ZAS_Kl_15 : 17|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" Vector__XXX From 5402c523e5d4c8756f7dd86bc8583d2364fc2dbf Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 26 Jun 2024 21:08:04 +0200 Subject: [PATCH 079/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 6a8736016e4..48a3417f160 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -855,8 +855,8 @@ BO_ 64 Airbag_01: 8 Gateway SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway BO_ 1312 Airbag_02: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ Airbag_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Airbag_02_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From efd8527ef8c3b6a96dd2f4558cb89526d264b150 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:04:32 +0200 Subject: [PATCH 080/653] Update common.cc lwi magic bytes confirmed --- can/common.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/can/common.cc b/can/common.cc index 2cbf9d8163d..9ad05d8020a 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,7 +230,7 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - case 0x86: // LWI_01 Steering Angle + case 0x86: // LWI_01 Steering Angle - confirmed crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; case 0x9F: // LH_EPS_03 Electric Power Steering From 14e1f79c68ec805bac07c1b6df3235705e4c934d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:20:47 +0200 Subject: [PATCH 081/653] Update common.cc lh_eps_03 magic bytes confirmed --- can/common.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/can/common.cc b/can/common.cc index 9ad05d8020a..be3524b1235 100644 --- a/can/common.cc +++ b/can/common.cc @@ -233,7 +233,7 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0x86: // LWI_01 Steering Angle - confirmed crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; - case 0x9F: // LH_EPS_03 Electric Power Steering + case 0x9F: // LH_EPS_03 Electric Power Steering - confirmed crc ^= (uint8_t[]){0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}[counter]; break; case 0xAD: // Getriebe_11 Automatic Gearbox From 8760ecb6630fea8f0c5dd50f10f01ed021977980 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:24:42 +0200 Subject: [PATCH 082/653] Update common.cc Getriebe_11 magic bytes confirmed for MEB --- can/common.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/can/common.cc b/can/common.cc index be3524b1235..f19399895ea 100644 --- a/can/common.cc +++ b/can/common.cc @@ -236,7 +236,7 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0x9F: // LH_EPS_03 Electric Power Steering - confirmed crc ^= (uint8_t[]){0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}[counter]; break; - case 0xAD: // Getriebe_11 Automatic Gearbox + case 0xAD: // Getriebe_11 Automatic Gearbox - confirmed crc ^= (uint8_t[]){0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}[counter]; break; case 0xFD: // ESP_21 Electronic Stability Program From dd3a7f4bec384680f23e1a64b405396db2396a53 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:39:20 +0200 Subject: [PATCH 083/653] Update common.cc remove non present signals for MEB --- can/common.cc | 39 +++------------------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) diff --git a/can/common.cc b/can/common.cc index f19399895ea..d558b53ae78 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,60 +230,27 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - case 0x86: // LWI_01 Steering Angle - confirmed + case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; - case 0x9F: // LH_EPS_03 Electric Power Steering - confirmed + case 0x9F: // LH_EPS_03 Electric Power Steering crc ^= (uint8_t[]){0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}[counter]; break; - case 0xAD: // Getriebe_11 Automatic Gearbox - confirmed + case 0xAD: // Getriebe_11 Automatic Gearbox crc ^= (uint8_t[]){0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}[counter]; break; case 0xFD: // ESP_21 Electronic Stability Program crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; break; - case 0x106: // ESP_05 Electronic Stability Program - crc ^= (uint8_t[]){0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07}[counter]; - break; - case 0x117: // ACC_10 Automatic Cruise Control - crc ^= (uint8_t[]){0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16}[counter]; - break; - case 0x120: // TSK_06 Drivetrain Coordinator - crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; - break; - case 0x31E: // TSK_07 Drivetrain Coordinator - crc ^= (uint8_t[]){0x78, 0x68, 0x3A, 0x31, 0x16, 0x08, 0x4F, 0xDE, 0xF7, 0x35, 0x19, 0xE6, 0x28, 0x2F, 0x59, 0x82}[counter]; - break; case 0x121: // Motor_20 Driver Throttle Inputs crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; break; - case 0x122: // ACC_06 Automatic Cruise Control - crc ^= (uint8_t[]){0x37, 0x7D, 0xF3, 0xA9, 0x18, 0x46, 0x6D, 0x4D, 0x3D, 0x71, 0x92, 0x9C, 0xE5, 0x32, 0x10, 0xB9}[counter]; - break; case 0x126: // HCA_01 Heading Control Assist crc ^= (uint8_t[]){0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}[counter]; break; case 0x12B: // GRA_ACC_01 Steering wheel controls for ACC crc ^= (uint8_t[]){0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}[counter]; break; - case 0x12E: // ACC_07 Automatic Cruise Control - crc ^= (uint8_t[]){0xF8, 0xE5, 0x97, 0xC9, 0xD6, 0x07, 0x47, 0x21, 0x66, 0xDD, 0xCF, 0x6F, 0xA1, 0x94, 0x74, 0x63}[counter]; - break; - case 0x187: // EV_Gearshift "Gear" selection data for EVs with no gearbox - crc ^= (uint8_t[]){0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}[counter]; - break; - case 0x2A9: // ACC_15 Front Collision Warning - crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; - break; - case 0x30C: // ACC_02 Automatic Cruise Control - crc ^= (uint8_t[]){0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}[counter]; - break; - case 0x30F: // SWA_01 Lane Change Assist (SpurWechselAssistent) - crc ^= (uint8_t[]){0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C}[counter]; - break; - case 0x324: // ACC_04 Automatic Cruise Control - crc ^= (uint8_t[]){0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27}[counter]; - break; case 0x3C0: // Klemmen_Status_01 ignition and starting status crc ^= (uint8_t[]){0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}[counter]; break; From 4f98b7fc51f1d5b7cb8fbec2a9b0bbe5351f0af7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 15:51:27 +0200 Subject: [PATCH 084/653] Update common.cc add MOTOR_14 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index d558b53ae78..ad186fc0f93 100644 --- a/can/common.cc +++ b/can/common.cc @@ -242,6 +242,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0xFD: // ESP_21 Electronic Stability Program crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; break; + case 0x3BE: // Motor_14 Driver Brake Inputs + crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; + break; case 0x121: // Motor_20 Driver Throttle Inputs crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; break; From 4165f633a22a945b23b01ee5cf10c9445fde6f32 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:15:54 +0200 Subject: [PATCH 085/653] Update common.cc add airbag_02 magic bytes --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index ad186fc0f93..f582ab5b6c3 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x520: // Airbag_02 Belt Buckle + crc ^= (uint8_t[]){0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}[counter]; + break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From 069f8438b41a6c3e4d02c3cf6e71f860f8a9eb8c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:18:00 +0200 Subject: [PATCH 086/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 48a3417f160..6a8736016e4 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -855,8 +855,8 @@ BO_ 64 Airbag_01: 8 Gateway SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway BO_ 1312 Airbag_02: 8 Gateway - SG_ Airbag_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Airbag_02_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From 467c19c9c0a8d59220c57f262893e7799c4e0ced Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:19:56 +0200 Subject: [PATCH 087/653] Update vw_meb.dbc --- vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 6a8736016e4..02a609883ee 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -855,8 +855,6 @@ BO_ 64 Airbag_01: 8 Gateway SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway BO_ 1312 Airbag_02: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX From b6ddb758754bc2a520dba268abde197f08c18ff0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:20:22 +0200 Subject: [PATCH 088/653] Update common.cc remove again --- can/common.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index f582ab5b6c3..ad186fc0f93 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,9 +230,6 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - case 0x520: // Airbag_02 Belt Buckle - crc ^= (uint8_t[]){0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x44}[counter]; - break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From 3181892748b10fddc08cac1c8dfdebf120fbfa9a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:23:57 +0200 Subject: [PATCH 089/653] Update vw_meb.dbc remove counters and checksums for now --- vw_meb.dbc | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 02a609883ee..60b3cbf6f03 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -73,8 +73,6 @@ BO_ 253 ESP_21: 8 Gateway_MQB SG_ ESP_Anhaltevorgang_ACC_aktiv : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB BO_ 795 ESP_24: 8 Gateway - SG_ ESP_24_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway - SG_ ESP_24_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway SG_ ABS_Lampe : 13|1@1+ (1,0) [0|1] "" Sub_Gateway SG_ BK_Lampe_02 : 14|2@1+ (1,0) [0|3] "" Sub_Gateway @@ -232,8 +230,8 @@ BO_ 168 Motor_12: 8 Motor_Diesel_MQB SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB BO_ 958 Motor_14: 8 Gateway - SG_ Motor_14_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway - SG_ Motor_14_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Sub_Gateway + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Sub_Gateway SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME @@ -1434,8 +1432,6 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX BO_ 252 MEB_ESP_01: 48 XXX - SG_ MEB_ESP_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ MEB_ESP_01_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX SG_ VL_Radgeschw : 72|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX @@ -1448,8 +1444,6 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX - SG_ MEB_ESP_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ MEB_ESP_02_COUNT : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX From eb47cf90905411be0f6c0912236033bf17145e49 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:42:04 +0200 Subject: [PATCH 090/653] Update common.cc --- can/common.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index ad186fc0f93..c2a59ee0ff1 100644 --- a/can/common.cc +++ b/can/common.cc @@ -242,9 +242,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0xFD: // ESP_21 Electronic Stability Program crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; break; - case 0x3BE: // Motor_14 Driver Brake Inputs - crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; - break; + //case 0x3BE: // Motor_14 Driver Brake Inputs + // crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; + // break; case 0x121: // Motor_20 Driver Throttle Inputs crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; break; From 86894fcca549f65f33a8c22c7d52a189af49466d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:42:19 +0200 Subject: [PATCH 091/653] Update vw_meb.dbc --- vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 60b3cbf6f03..e4cf70194eb 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -230,8 +230,6 @@ BO_ 168 Motor_12: 8 Motor_Diesel_MQB SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB BO_ 958 Motor_14: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Sub_Gateway - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Sub_Gateway SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME From 687fc1cda5f6f1030c042554af5069164c4e715b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 16:47:18 +0200 Subject: [PATCH 092/653] Update vw_meb.dbc --- vw_meb.dbc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index e4cf70194eb..ab754720f2e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1453,6 +1453,15 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX +BO_ 771 MEB_Lane_Assist_01: 24 XXX + SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX + SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX + SG_ Confidence : 22|7@0+ (1,0) [0|127] "" XXX + SG_ Torque : 24|8@1+ (1,0) [0|255] "" XXX + SG_ Torque_Segment : 34|3@0+ (1,0) [0|7] "" XXX + SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX + SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX + BO_ 588 MEB_Drive_State_01: 16 XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX From bf5e5f52cabbcf037bc6063854995329e054d112 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 16:58:55 +0200 Subject: [PATCH 093/653] Update vw_meb.dbc --- vw_meb.dbc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ab754720f2e..a9d13c34e38 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1457,8 +1457,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Confidence : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Torque : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Torque_Segment : 34|3@0+ (1,0) [0|7] "" XXX + SG_ Torque : 24|11@1+ (1,0) [0|255] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 36a834c29d4673c58c94a124019fc9e60af7aa20 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 17:48:12 +0200 Subject: [PATCH 094/653] Update vw_meb.dbc --- vw_meb.dbc | 9 --------- 1 file changed, 9 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a9d13c34e38..10f3c2df1e7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1444,15 +1444,6 @@ BO_ 252 MEB_ESP_01: 48 XXX BO_ 192 MEB_ESP_02: 32 XXX SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX -BO_ 771 MEB_Lane_Assist_01: 24 XXX - SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX - SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ Data_01 : 16|7@1+ (1,0) [0|127] "" XXX - SG_ Data_02 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ Contact : 34|3@0+ (1,0) [0|7] "" XXX - SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX - SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX - BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX From 472ffe44f8d22b9d18ed33bff6cd68455e85fdaa Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 18:38:25 +0200 Subject: [PATCH 095/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 10f3c2df1e7..a382b8cb53a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1447,7 +1447,7 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ Confidence : 22|7@0+ (1,0) [0|127] "" XXX + SG_ State : 22|7@0+ (1,0) [0|127] "" XXX SG_ Torque : 24|11@1+ (1,0) [0|255] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 8f053cacd4a93924474701d9faef5dd0529ab3bc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 18:57:13 +0200 Subject: [PATCH 096/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a382b8cb53a..15e530df590 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ State : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Torque : 24|11@1+ (1,0) [0|255] "" XXX + SG_ Torque : 24|11@1+ (1,0) [0|2047] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 86101177e814109ddd3f0d439abaf2824e370597 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 19:55:04 +0200 Subject: [PATCH 097/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 15e530df590..2091c26495e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ State : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Torque : 24|11@1+ (1,0) [0|2047] "" XXX + SG_ Torque : 24|11@1+ (0.1,0) [0|200] "deciNewtonMeter" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From ee385c2582c1e775243052385b4140d06c234915 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 23:03:14 +0200 Subject: [PATCH 098/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2091c26495e..05741b8f3b4 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1447,8 +1447,8 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ State : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Torque : 24|11@1+ (0.1,0) [0|200] "deciNewtonMeter" XXX + SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|127] "" XXX + SG_ Steering_Angle : 24|11@1+ (0.1,0) [0|200] "deciNewtonMeter" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 4595e8cad48feb987c020dc0827e55563c7759a0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 29 Jun 2024 23:42:11 +0200 Subject: [PATCH 099/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 05741b8f3b4..101e1953891 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Steering_Angle : 24|11@1+ (0.1,0) [0|200] "deciNewtonMeter" XXX + SG_ Steering_Angle : 24|11@1+ (0.55,0) [0|200] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From c41ef17a57657a373ac8e831c37030c99175b5bd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 00:03:38 +0200 Subject: [PATCH 100/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 101e1953891..461a0bd5085 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Steering_Angle : 24|11@1+ (0.55,0) [0|200] "" XXX + SG_ Steering_Angle : 24|11@1+ (0.1,0) [0|180] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From f616c528d5188c0567aba64132eea18a994a9808 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 00:42:18 +0200 Subject: [PATCH 101/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 461a0bd5085..347895c59fc 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1447,8 +1447,8 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|127] "" XXX - SG_ Steering_Angle : 24|11@1+ (0.1,0) [0|180] "" XXX + SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX + SG_ Steering_Angle : 24|11@1+ (0.05,0) [0|100] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 8dcd5b708ccdce9c96d9eed2afaca94ae358e507 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 09:37:50 +0200 Subject: [PATCH 102/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 347895c59fc..9b0b6c33b47 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|11@1+ (0.05,0) [0|100] "" XXX + SG_ Steering_Angle : 24|12@1+ (0.01,0) [0|100] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From bfff94d753d1a270bb03a620d434b84f48a768b3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 10:42:00 +0200 Subject: [PATCH 103/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9b0b6c33b47..b51c953985f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|12@1+ (0.01,0) [0|100] "" XXX + SG_ Steering_Angle : 24|12@1+ (0.03,0) [0|120] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From fad9e30af852fdc488747e94496c6d0317d30d57 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 12:22:13 +0200 Subject: [PATCH 104/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index b51c953985f..d35fafa7d0f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|12@1+ (0.03,0) [0|120] "" XXX + SG_ Steering_Angle : 24|15@1+ (0.02,0) [0|650] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 01e4a839787ea5e435dd6e56a8b25d3e0bd268ab Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 12:57:08 +0200 Subject: [PATCH 105/653] Update vw_meb.dbc --- vw_meb.dbc | 74 +++++++----------------------------------------------- 1 file changed, 9 insertions(+), 65 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index d35fafa7d0f..08d64ffed2e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1462,73 +1462,17 @@ BO_ 588 MEB_Drive_State_01: 16 XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX BO_ 589 MEB_Side_Assist_01: 64 XXX - SG_ NEW_SIGNAL_1 : 15|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_2 : 21|13@0+ (1,0) [0|8191] "" XXX - SG_ NEW_SIGNAL_3 : 34|3@0+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_4 : 55|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 56|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_9 : 60|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 87|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_10 : 89|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_8 : 95|4@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_11 : 97|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_41 : 105|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_13 : 116|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 119|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_14 : 121|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_15 : 135|8@0+ (1,0) [0|65535] "" XXX - SG_ NEW_SIGNAL_6 : 143|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_16 : 151|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_17 : 159|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_18 : 167|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_19 : 175|16@0+ (1,0) [0|65535] "" XXX - SG_ NEW_SIGNAL_20 : 191|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_21 : 262|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_22 : 270|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_23 : 279|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_24 : 286|9@0+ (1,0) [0|511] "" XXX - SG_ NEW_SIGNAL_25 : 292|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_26 : 303|10@0+ (1,0) [0|1023] "" XXX - SG_ NEW_SIGNAL_27 : 308|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_28 : 318|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_30 : 391|8@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_32 : 399|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_33 : 400|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_35 : 410|3@0+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_34 : 413|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_37 : 428|4@0+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_36 : 430|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_38 : 439|7@0+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_40 : 447|8@0+ (1,0) [0|63] "" XXX + SG_ Blind_Spot_Left : 100|3@0+ (1,0) [0|7] "" XXX + SG_ Blind_Spot_Right : 108|3@0+ (1,0) [0|7] "" XXX BO_ 591 MEB_Distance_01: 64 XXX - SG_ NEW_SIGNAL_23 : 16|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_10 : 21|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_9 : 22|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 23|1@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_13 : 24|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_8 : 25|1@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_27 : 26|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_22 : 27|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_11 : 28|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_17 : 29|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Ready : 30|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_19 : 31|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 32|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 33|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_14 : 43|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_20 : 47|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_21 : 49|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_16 : 50|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 53|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 55|2@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_6 : 61|6@0+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_3 : 71|32@0+ (1,0) [0|4294967295] "" XXX - SG_ NEW_SIGNAL_2 : 103|32@0+ (1,0) [0|4294967295] "" XXX - SG_ NEW_SIGNAL_1 : 135|32@0+ (1,0) [0|4294967295] "" XXX - SG_ NEW_SIGNAL_26 : 199|32@0+ (1,0) [0|4294967295] "" XXX - SG_ NEW_SIGNAL_25 : 231|32@0+ (1,0) [0|4294967295] "" XXX - SG_ NEW_SIGNAL_24 : 263|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Same_Lane_01 : 71|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Left_Lane_01 : 103|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Right_Lane_01 : 135|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Same_Lane_03 : 167|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Left_Lane_02 : 199|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Right_Lane_02 : 231|32@0+ (1,0) [0|4294967295] "" XXX + SG_ Same_Lane_02 : 263|32@0+ (1,0) [0|4294967295] "" XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX From 51d8abbfedc5a455a18aa547a3a34441105f7cac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 14:27:02 +0200 Subject: [PATCH 106/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 08d64ffed2e..ff0d3bde695 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.02,0) [0|650] "" XXX + SG_ Steering_Angle : 24|15@1+ (0.01,0) [0|650] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From e546eb979e5042428cc9139aa83696cb1fa07d10 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 16:06:42 +0200 Subject: [PATCH 107/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ff0d3bde695..f42d92ba744 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.01,0) [0|650] "" XXX + SG_ Steering_Angle : 24|15@1+ (0.025,0) [0|360] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 4aeaf9cf09c3f9e1d3fc5f3813e42dcff946fc67 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 16:24:59 +0200 Subject: [PATCH 108/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f42d92ba744..92cc4e56e47 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1481,9 +1481,9 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX BO_ 333 MEB_ACC_02: 32 XXX - SG_ ACC_State : 62|3@0+ (1,0) [0|31] "" XXX + SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; -VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" ; +VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From 87cc1b57ccc34b8dca84a61bbb355c13cb44f1c8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 16:51:25 +0200 Subject: [PATCH 109/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 92cc4e56e47..2cce49b9247 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.025,0) [0|360] "" XXX + SG_ Steering_Angle : 24|15@1+ (0.02,0) [0|360] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From e2bce520c4e3589f86c734dcb83a3ac446157908 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 18:00:21 +0200 Subject: [PATCH 110/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2cce49b9247..50fc926829f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.02,0) [0|360] "" XXX + SG_ Steering_Angle : 24|15@1+ (0.022,0) [0|360] "" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 1f7c1f33c114d3dbb56ada7391832d372d7742bd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 18:31:55 +0200 Subject: [PATCH 111/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 50fc926829f..50fce77be4b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1448,7 +1448,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.022,0) [0|360] "" XXX + SG_ Steering_Angle : 24|13@1+ (0.0174,0) [0|100] "Unit_DegreOfArc" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 8143bfad4863682b1b45834ab268271f24c81377 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 19:54:51 +0200 Subject: [PATCH 112/653] Update vw_meb.dbc --- vw_meb.dbc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 50fce77be4b..164352c703c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1101,6 +1101,13 @@ BO_ 982 Licht_hinten_01: 8 Gateway SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High +BO_ 517 MEB_Light_01: 8 XXX + SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX + SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX + SG_ Brake_Light : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Left_Blinker : 37|1@0+ (1,0) [0|1] "" XXX + SG_ Right_Blinker : 38|1@0+ (1,0) [0|1] "" XXX + BO_ 817 MFL_01: 8 Gateway SG_ MFL_Zaehler : 0|4@1+ (1,0) [0|15] "" Vector__XXX SG_ MFL_Toggle : 4|1@1+ (1,0) [0|1] "" Vector__XXX From 34adb6b4025b32b909bae9e0050effcfe2a8cf7b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 20:38:41 +0200 Subject: [PATCH 113/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 164352c703c..f2a5ecf5618 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1460,6 +1460,8 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX BO_ 588 MEB_Drive_State_01: 16 XXX + SG_ Blind_Spot_Right : 14|4@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Left : 21|4@1+ (1,0) [0|15] "" XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX From 39c1f0c671e039d1120d5ba1781f2420c2403843 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 20:39:40 +0200 Subject: [PATCH 114/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f2a5ecf5618..f8c38584bdf 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1471,8 +1471,8 @@ BO_ 588 MEB_Drive_State_01: 16 XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX BO_ 589 MEB_Side_Assist_01: 64 XXX - SG_ Blind_Spot_Left : 100|3@0+ (1,0) [0|7] "" XXX - SG_ Blind_Spot_Right : 108|3@0+ (1,0) [0|7] "" XXX + SG_ Unknown_01 : 100|3@0+ (1,0) [0|7] "" XXX + SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Same_Lane_01 : 71|32@0+ (1,0) [0|4294967295] "" XXX From b5377c82e56ce0c46665e52603e56bbe52aa4621 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 20:56:01 +0200 Subject: [PATCH 115/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f8c38584bdf..ac7f434346d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1438,7 +1438,7 @@ BO_ 1355 Parkhilfe_04: 8 Gateway BO_ 252 MEB_ESP_01: 48 XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 59|4@0+ (1,0) [0|15] "" XXX + SG_ Brake_Pressed : 49|2@0+ (1,0) [0|3] "" XXX SG_ VL_Radgeschw : 72|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX SG_ VR_Radgeschw : 88|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX SG_ HL_Radgeschw : 104|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX From 532902b22f833e57d2ccc87c901c650de87ac557 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:06:13 +0200 Subject: [PATCH 116/653] Update vw_meb.dbc --- vw_meb.dbc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ac7f434346d..98420b44dce 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1449,7 +1449,10 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX BO_ 192 MEB_ESP_02: 32 XXX - SG_ Accelerator : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX + +BO_ 332 MEB_ESP_03: 32 XXX + SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX From 13aafe11891fff0f5bdedc7e038f627b5e889f12 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 30 Jun 2024 21:15:51 +0200 Subject: [PATCH 117/653] Update vw_meb.dbc --- vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 98420b44dce..c02b0084b7c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1102,8 +1102,6 @@ BO_ 982 Licht_hinten_01: 8 Gateway SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High BO_ 517 MEB_Light_01: 8 XXX - SG_ CHECKSUM : 7|8@0+ (1,0) [0|255] "" XXX - SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX SG_ Brake_Light : 36|1@0+ (1,0) [0|1] "" XXX SG_ Left_Blinker : 37|1@0+ (1,0) [0|1] "" XXX SG_ Right_Blinker : 38|1@0+ (1,0) [0|1] "" XXX From 77520adca4079d5598d807a50cf07d6f8e778135 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:28:46 +0200 Subject: [PATCH 118/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index c02b0084b7c..4832c47af16 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1456,7 +1456,7 @@ BO_ 771 MEB_Lane_Assist_01: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|13@1+ (0.0174,0) [0|100] "Unit_DegreOfArc" XXX + SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX From 0f17d4e34f76c043c3c5ba24bc00490309622809 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 1 Jul 2024 16:24:03 +0200 Subject: [PATCH 119/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 4832c47af16..2708a7b1f5b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1452,7 +1452,7 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX -BO_ 771 MEB_Lane_Assist_01: 24 XXX +BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX From 11a41266a3212356ec549c1fbd360969f64072f5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 15:25:01 +0200 Subject: [PATCH 120/653] Update vw_meb.dbc add steering angle meb signals --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2708a7b1f5b..1884bd49679 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1445,6 +1445,8 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ VR_Brake_Pressure : 165|6@0+ (1,0) [0|15] "" XXX SG_ HL_Brake_Pressure : 173|6@0+ (1,0) [0|15] "" XXX SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX + SG_ Steering_Wheel_CW : 184|8@1+ (1.95,0) [0|255] "" XXX + SG_ Steering_Wheel_CCW : 192|8@1+ (1.95,0) [0|255] "" XXX BO_ 192 MEB_ESP_02: 32 XXX SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX From c86dc05e1550b541311ec935a4c89b4b1c4f9ab1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 16:46:15 +0200 Subject: [PATCH 121/653] Update vw_meb.dbc --- vw_meb.dbc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1884bd49679..2ec2b24a33d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1454,6 +1454,13 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX +BO_ 317 MEB_EPS_01: 32 XXX + SG_ EPS_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX + SG_ ESP_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 48|6@1+ (1,0) [0|63] "" XXX + SG_ Steering_Angle_VZ : 63|1@0+ (1,0) [0|1] "" XXX + SG_ Steering_Angle : 76|15@1+ (0.02,0) [0|32767] "" XXX + BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX From cd93e9e0dd8f81d4f55346dc3fbd524edec84d28 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 17:03:19 +0200 Subject: [PATCH 122/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2ec2b24a33d..7fdc236de3b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1455,8 +1455,8 @@ BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX - SG_ EPS_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX - SG_ ESP_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX + SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX + SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_1 : 48|6@1+ (1,0) [0|63] "" XXX SG_ Steering_Angle_VZ : 63|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Angle : 76|15@1+ (0.02,0) [0|32767] "" XXX From 7fb8a0b09623055407aaca9c14bc249a7166a7e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 17:32:05 +0200 Subject: [PATCH 123/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7fdc236de3b..9bb427ead72 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1504,5 +1504,6 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; -VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted" ; +VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 4 "active" 7 "rejected" 6 "fault" 5 "preempted"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From c6ce7ad98cc2ea7e7dc7a4ccbd9721a5e62f5907 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 19:04:11 +0200 Subject: [PATCH 124/653] Update vw_meb.dbc testing hca status values --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9bb427ead72..83094e5c83d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1505,5 +1505,5 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 4 "active" 7 "rejected" 6 "fault" 5 "preempted"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "ready" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From 2762637868b9755b44af35f3d08f8bd40197a483 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 20:23:03 +0200 Subject: [PATCH 125/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 83094e5c83d..359475e0fa6 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1505,5 +1505,5 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "ready" 7 "rejected"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From 3f748ec948977f29c6021ef5e53b48c48c51b35e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 21:28:37 +0200 Subject: [PATCH 126/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 359475e0fa6..d1b2c907f75 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1459,7 +1459,7 @@ BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_1 : 48|6@1+ (1,0) [0|63] "" XXX SG_ Steering_Angle_VZ : 63|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle : 76|15@1+ (0.02,0) [0|32767] "" XXX + SG_ Steering_Angle : 76|15@1+ (0.01,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX From b475f0c52c2a8b2d02b455ec81649b51b972b3f5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 22:21:55 +0200 Subject: [PATCH 127/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index d1b2c907f75..7fecd07024b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1505,5 +1505,5 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From c17146fa215d2ea0d7edb2b7ab579de64b796012 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 2 Jul 2024 22:45:04 +0200 Subject: [PATCH 128/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7fecd07024b..043490ddbd7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1505,5 +1505,5 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "ready" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From f42ea8d16a42f0c41cd526a8d15139ef74fd523a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 00:38:03 +0200 Subject: [PATCH 129/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 043490ddbd7..7fecd07024b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1505,5 +1505,5 @@ BO_ 333 MEB_ACC_02: 32 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "ready" 7 "rejected"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; From 1957eada6d30fa5e42bdba1d540ae9bfd7a69cf2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:19:40 +0200 Subject: [PATCH 130/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7fecd07024b..a518416bf7e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1437,10 +1437,10 @@ BO_ 1355 Parkhilfe_04: 8 Gateway BO_ 252 MEB_ESP_01: 48 XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed : 49|2@0+ (1,0) [0|3] "" XXX - SG_ VL_Radgeschw : 72|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ VR_Radgeschw : 88|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HL_Radgeschw : 104|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX - SG_ HR_Radgeschw : 120|8@1+ (0.57,0) [0|127] "Unit_MeterPerSecond" XXX + SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX + SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX + SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX + SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX SG_ VL_Brake_Pressure : 157|6@0+ (1,0) [0|15] "" XXX SG_ VR_Brake_Pressure : 165|6@0+ (1,0) [0|15] "" XXX SG_ HL_Brake_Pressure : 173|6@0+ (1,0) [0|15] "" XXX From 7dcf19b11b0b119cc44c1b592d214f3c72d1f3ac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 16:27:39 +0200 Subject: [PATCH 131/653] Update vw_meb.dbc --- vw_meb.dbc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a518416bf7e..63549064bac 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1437,14 +1437,14 @@ BO_ 1355 Parkhilfe_04: 8 Gateway BO_ 252 MEB_ESP_01: 48 XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed : 49|2@0+ (1,0) [0|3] "" XXX - SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX - SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX - SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX - SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|127] "Unit_KilometerPerSecond" XXX - SG_ VL_Brake_Pressure : 157|6@0+ (1,0) [0|15] "" XXX - SG_ VR_Brake_Pressure : 165|6@0+ (1,0) [0|15] "" XXX - SG_ HL_Brake_Pressure : 173|6@0+ (1,0) [0|15] "" XXX - SG_ HR_Brake_Pressure : 181|6@0+ (1,0) [0|15] "" XXX + SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX + SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX + SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX + SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX + SG_ VL_Brake_Pressure : 157|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX + SG_ VR_Brake_Pressure : 165|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX + SG_ HL_Brake_Pressure : 173|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX + SG_ HR_Brake_Pressure : 181|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX SG_ Steering_Wheel_CW : 184|8@1+ (1.95,0) [0|255] "" XXX SG_ Steering_Wheel_CCW : 192|8@1+ (1.95,0) [0|255] "" XXX From 851cc33de19c655d1d4ad71d1dadbc96f88c7091 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:23:35 +0200 Subject: [PATCH 132/653] Update vw_meb.dbc --- vw_meb.dbc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 63549064bac..9a639442ce7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1445,8 +1445,8 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ VR_Brake_Pressure : 165|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX SG_ HL_Brake_Pressure : 173|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX SG_ HR_Brake_Pressure : 181|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX - SG_ Steering_Wheel_CW : 184|8@1+ (1.95,0) [0|255] "" XXX - SG_ Steering_Wheel_CCW : 192|8@1+ (1.95,0) [0|255] "" XXX + SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX + SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX BO_ 192 MEB_ESP_02: 32 XXX SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX @@ -1457,9 +1457,10 @@ BO_ 332 MEB_ESP_03: 32 XXX BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_1 : 48|6@1+ (1,0) [0|63] "" XXX - SG_ Steering_Angle_VZ : 63|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle : 76|15@1+ (0.01,0) [0|32767] "" XXX + SG_ Steering_Angle_VZ_02 : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Steering_Angle : 40|15@1+ (0.0171,0) [0|65535] "" XXX + SG_ Steering_Angle_VZ : 55|1@0+ (1,0) [0|1] "" XXX + SG_ Steering_Angle_02 : 76|16@1+ (0.00906,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX From a23f1c8cdd5139d5165d81eaa6d1953691ed0c5a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 17:41:47 +0200 Subject: [PATCH 133/653] Update vw_meb.dbc fix lwi_01 steering angle factor --- vw_meb.dbc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9a639442ce7..aeecc1d4ba2 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -524,17 +524,17 @@ BO_ 299 GRA_ACC_01: 8 Gateway SG_ GRA_reserveByte8 : 56|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX BO_ 134 LWI_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ LWI_Sensorstatus : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LWI_MFL_Abschaltung : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LWI_QBit_Lenkradwinkel : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_Lenkradwinkel : 16|13@1+ (0.1,0) [0.0|800.0] "Unit_DegreOfArc" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_VZ_Lenkradwinkel : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_VZ_Lenkradw_Geschw : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LWI_Lenkradw_Geschw : 31|9@1+ (5,0) [0|2500] "Unit_DegreOfArcPerSecon" OTA_FC,ZR_High - SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LWI_Sensorstatus : 12|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_MFL_Abschaltung : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_QBit_Lenkradwinkel : 15|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_Lenkradwinkel : 16|13@1+ (0.0843,0) [0|800] "Unit_DegreOfArc" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradwinkel : 29|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradw_Geschw : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_Lenkradw_Geschw : 31|9@1+ (5,0) [0|2500] "Unit_DegreOfArcPerSecon" OTA_FC,ZR_High + SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX BO_ 420 EA_01: 8 Gateway SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX From 1ce6a53bff3684938bdcd7c8bc2aa0640d1ef01c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 20:32:01 +0200 Subject: [PATCH 134/653] Update vw_meb.dbc --- vw_meb.dbc | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index aeecc1d4ba2..174bc7107ed 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1486,13 +1486,31 @@ BO_ 589 MEB_Side_Assist_01: 64 XXX SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX BO_ 591 MEB_Distance_01: 64 XXX - SG_ Same_Lane_01 : 71|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Left_Lane_01 : 103|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Right_Lane_01 : 135|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Same_Lane_03 : 167|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Left_Lane_02 : 199|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Right_Lane_02 : 231|32@0+ (1,0) [0|4294967295] "" XXX - SG_ Same_Lane_02 : 263|32@0+ (1,0) [0|4294967295] "" XXX + SG_ State_Area : 16|38@1+ (1,0) [0|274877906943] "" XXX + SG_ Same_Lane_01_Distance : 54|22@1+ (1,0) [0|4294967295] "" XXX + SG_ Same_Lane_01_a : 76|10@1+ (1,0) [0|31] "" XXX + SG_ Same_Lane_01_b : 86|10@1+ (1,0) [0|127] "" XXX + SG_ Left_Lane_01_Distance : 96|12@1+ (1,0) [0|4294967295] "" XXX + SG_ Left_Lane_01_a : 108|10@1+ (1,0) [0|15] "" XXX + SG_ Left_Lane_01_b : 118|10@1+ (1,0) [0|7] "" XXX + SG_ Right_Lane_01_Distance : 128|12@1+ (1,0) [0|1023] "" XXX + SG_ Right_Lane_01_a : 140|10@1+ (1,0) [0|15] "" XXX + SG_ Right_Lane_01_b : 150|10@1+ (1,0) [0|1023] "" XXX + SG_ Same_Lane_02_Distance : 160|12@1+ (1,0) [0|4095] "" XXX + SG_ Same_Lane_02_a : 172|10@1+ (1,0) [0|31] "" XXX + SG_ Same_Lane_02_b : 182|10@1+ (1,0) [0|1023] "" XXX + SG_ Left_Lane_02_Distance : 192|12@1+ (1,0) [0|4095] "" XXX + SG_ Left_Lane_02_a : 204|10@1+ (1,0) [0|1023] "" XXX + SG_ Left_Lane_02_b : 214|10@1+ (1,0) [0|1023] "" XXX + SG_ Right_Lane_02_Distance : 224|12@1+ (1,0) [0|4095] "" XXX + SG_ Right_Lane_02_a : 236|10@1+ (1,0) [0|1023] "" XXX + SG_ Right_Lane_02_b : 246|10@1+ (1,0) [0|1023] "" XXX + SG_ Same_Lane_03_a : 263|8@0+ (1,0) [0|255] "" XXX + SG_ Same_Lane_03_b : 264|6@1+ (1,0) [0|31] "" XXX + SG_ Same_Lane_03_c : 270|5@1+ (1,0) [0|31] "" XXX + SG_ Same_Lane_03_d : 279|3@0+ (1,0) [0|7] "" XXX + SG_ Same_Lane_03_e : 280|1@0+ (1,0) [0|1] "" XXX + SG_ Same_Lane_03_f : 284|4@1+ (1,0) [0|3] "" XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX From 5a0f665d928c4294f0f4a8d571eaf74c64b62825 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 22:12:27 +0200 Subject: [PATCH 135/653] Update vw_meb.dbc --- vw_meb.dbc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 174bc7107ed..1f4dd352212 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1519,7 +1519,18 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX BO_ 333 MEB_ACC_02: 32 XXX + SG_ NEW_SIGNAL_7 : 14|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 19|4@0+ (1,0) [0|15] "" XXX + SG_ Accel : 24|11@1+ (1,0) [0|1023] "" XXX + SG_ NEW_SIGNAL_9 : 35|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 45|6@0+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_3 : 54|7@0+ (1,0) [0|63] "" XXX SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_5 : 77|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 79|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX + SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX + SG_ NEW_SIGNAL_8 : 253|6@0+ (1,0) [0|63] "" XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; From 0a56e2abf7608640c11cba35eb43d4196254f303 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 23:17:17 +0200 Subject: [PATCH 136/653] Update vw_meb.dbc --- vw_meb.dbc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1f4dd352212..629ecd65978 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1532,8 +1532,14 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX SG_ NEW_SIGNAL_8 : 253|6@0+ (1,0) [0|63] "" XXX +BO_ 1004 MEB_ACC_04: 8 XXX + SG_ ACC_State : 53|3@1+ (1,0) [0|7] "" XXX + +BO_ 1019 MEB_ACC_03: 8 XXX + VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; +VAL_ 1004 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "user_overwrite"; From 2b8ef55cb642d645cba42608b23c33bc52bc3df8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 3 Jul 2024 23:46:48 +0200 Subject: [PATCH 137/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 629ecd65978..2196fde416b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1454,6 +1454,14 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX +BO_ 258 MEB_ESP_04: 48 XXX + SG_ NEW_SIGNAL_4 : 23|8@0+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 24|10@1+ (1,0) [0|1023] "" XXX + SG_ NEW_SIGNAL_1 : 40|13@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_2 : 54|1@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX + BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX From 69fb15b5eebb84a35bbad20725a39988aceb234d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 4 Jul 2024 16:46:41 +0200 Subject: [PATCH 138/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2196fde416b..440b4b015fc 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1466,9 +1466,9 @@ BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX SG_ Steering_Angle_VZ_02 : 36|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle : 40|15@1+ (0.0171,0) [0|65535] "" XXX + SG_ Steering_Angle_02 : 40|15@1+ (0.0171,0) [0|65535] "" XXX SG_ Steering_Angle_VZ : 55|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle_02 : 76|16@1+ (0.00906,0) [0|32767] "" XXX + SG_ Steering_Angle : 76|16@1+ (0.00906,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX From c193715d30aecbf5fc5bc949045be21147db5496 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 4 Jul 2024 18:55:21 +0200 Subject: [PATCH 139/653] Update vw_meb.dbc --- vw_meb.dbc | 43 +++++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 24 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 440b4b015fc..228e8a0731d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1495,30 +1495,25 @@ BO_ 589 MEB_Side_Assist_01: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ State_Area : 16|38@1+ (1,0) [0|274877906943] "" XXX - SG_ Same_Lane_01_Distance : 54|22@1+ (1,0) [0|4294967295] "" XXX - SG_ Same_Lane_01_a : 76|10@1+ (1,0) [0|31] "" XXX - SG_ Same_Lane_01_b : 86|10@1+ (1,0) [0|127] "" XXX - SG_ Left_Lane_01_Distance : 96|12@1+ (1,0) [0|4294967295] "" XXX - SG_ Left_Lane_01_a : 108|10@1+ (1,0) [0|15] "" XXX - SG_ Left_Lane_01_b : 118|10@1+ (1,0) [0|7] "" XXX - SG_ Right_Lane_01_Distance : 128|12@1+ (1,0) [0|1023] "" XXX - SG_ Right_Lane_01_a : 140|10@1+ (1,0) [0|15] "" XXX - SG_ Right_Lane_01_b : 150|10@1+ (1,0) [0|1023] "" XXX - SG_ Same_Lane_02_Distance : 160|12@1+ (1,0) [0|4095] "" XXX - SG_ Same_Lane_02_a : 172|10@1+ (1,0) [0|31] "" XXX - SG_ Same_Lane_02_b : 182|10@1+ (1,0) [0|1023] "" XXX - SG_ Left_Lane_02_Distance : 192|12@1+ (1,0) [0|4095] "" XXX - SG_ Left_Lane_02_a : 204|10@1+ (1,0) [0|1023] "" XXX - SG_ Left_Lane_02_b : 214|10@1+ (1,0) [0|1023] "" XXX - SG_ Right_Lane_02_Distance : 224|12@1+ (1,0) [0|4095] "" XXX - SG_ Right_Lane_02_a : 236|10@1+ (1,0) [0|1023] "" XXX - SG_ Right_Lane_02_b : 246|10@1+ (1,0) [0|1023] "" XXX - SG_ Same_Lane_03_a : 263|8@0+ (1,0) [0|255] "" XXX - SG_ Same_Lane_03_b : 264|6@1+ (1,0) [0|31] "" XXX - SG_ Same_Lane_03_c : 270|5@1+ (1,0) [0|31] "" XXX - SG_ Same_Lane_03_d : 279|3@0+ (1,0) [0|7] "" XXX - SG_ Same_Lane_03_e : 280|1@0+ (1,0) [0|1] "" XXX - SG_ Same_Lane_03_f : 284|4@1+ (1,0) [0|3] "" XXX + SG_ Same_Lane_01_Distance : 54|22@1+ (0.0001,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_a : 76|10@1+ (1,-500) [0|31] "" XXX + SG_ Left_Lane_01_Distance : 86|22@1+ (0.0001,0) [0|4294967295] "" XXX + SG_ Left_Lane_01_a : 108|10@1+ (1,-500) [0|15] "" XXX + SG_ Right_Lane_01_Distance : 118|22@1+ (0.0001,0) [0|1023] "" XXX + SG_ Right_Lane_01_a : 140|10@1+ (1,-500) [0|15] "" XXX + SG_ Same_Lane_02_Distance : 150|22@1+ (0.0001,1) [0|4095] "" XXX + SG_ Same_Lane_02_a : 172|10@1+ (1,-500) [0|31] "" XXX + SG_ Left_Lane_02_Distance : 182|22@1+ (0.0001,0) [0|4095] "" XXX + SG_ Left_Lane_02_a : 204|10@1+ (1,-500) [0|1023] "" XXX + SG_ Right_Lane_02_Distance : 214|22@1+ (0.0001,0) [0|4095] "" XXX + SG_ Right_Lane_02_a : 236|10@1+ (1,-500) [0|1023] "" XXX + SG_ NEW_SIGNAL_2 : 246|10@1+ (1,-500) [0|1023] "" XXX + SG_ NEW_SIGNAL_3 : 256|8@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_4 : 264|6@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_7 : 270|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_1 : 272|5@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_5 : 277|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX From 08e9d043edde3c82b2f75a8a4cb057696be29cf0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:29:14 +0200 Subject: [PATCH 140/653] Update vw_meb.dbc --- vw_meb.dbc | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 228e8a0731d..57a728f7c58 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1522,18 +1522,33 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX BO_ 333 MEB_ACC_02: 32 XXX - SG_ NEW_SIGNAL_7 : 14|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 19|4@0+ (1,0) [0|15] "" XXX - SG_ Accel : 24|11@1+ (1,0) [0|1023] "" XXX - SG_ NEW_SIGNAL_9 : 35|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_2 : 45|6@0+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_3 : 54|7@0+ (1,0) [0|63] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX + SG_ Regulating_State : 19|3@0+ (1,0) [0|15] "" XXX + SG_ Accel : 24|11@1+ (1,-1446) [0|1023] "" XXX + SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX + SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX + SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX + SG_ Stopping : 57|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_1 : 59|1@0+ (1,0) [0|1] "" XXX SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_5 : 77|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_6 : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Rough_Stopping : 64|1@0+ (1,0) [0|3] "" XXX + SG_ Rough_Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_4 : 66|1@0+ (1,0) [0|1] "" XXX + SG_ State_Change_01 : 69|3@0+ (1,0) [0|7] "" XXX + SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX + SG_ State_Change_02 : 71|1@0+ (1,0) [0|1] "" XXX + SG_ State_Change_03 : 74|3@0+ (1,0) [0|7] "" XXX + SG_ Stopped : 77|1@0+ (1,0) [0|1] "" XXX + SG_ End_of_Stopped : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_5 : 232|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ NEW_SIGNAL_8 : 253|6@0+ (1,0) [0|63] "" XXX + SG_ Signal_High_Starting : 253|6@0+ (1,0) [0|63] "" XXX BO_ 1004 MEB_ACC_04: 8 XXX SG_ ACC_State : 53|3@1+ (1,0) [0|7] "" XXX From 3d49103e796706673bcc93a40d7ffc92c50d8260 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 00:43:42 +0200 Subject: [PATCH 141/653] Update vw_meb.dbc --- vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 57a728f7c58..33de0d1f495 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1560,4 +1560,5 @@ VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; +VAL_ 333 Regulating_State 3 "Regulating" 0 "Not_Regulating" 2 "Regulating_02" 6 "Initializing"; VAL_ 1004 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "user_overwrite"; From bc3a13a90f866fb657011b6e4f9eff7e8ea56973 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 18:09:09 +0200 Subject: [PATCH 142/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 33de0d1f495..a38264d85f6 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1558,7 +1558,7 @@ BO_ 1019 MEB_ACC_03: 8 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "active" 6 "fault" 7 "rejected"; +VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; VAL_ 333 Regulating_State 3 "Regulating" 0 "Not_Regulating" 2 "Regulating_02" 6 "Initializing"; VAL_ 1004 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "user_overwrite"; From bde231b8082ef2a7e4639181dfccae0417d2fd9f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 18:50:44 +0200 Subject: [PATCH 143/653] Update vw_meb.dbc --- vw_meb.dbc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a38264d85f6..bebf439ed1c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1525,8 +1525,9 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX - SG_ Regulating_State : 19|3@0+ (1,0) [0|15] "" XXX + SG_ Regulating_State : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (1,-1446) [0|1023] "" XXX + SG_ Unknown_01 : 36|2@1+ (1,0) [0|3] "" XXX SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX @@ -1549,6 +1550,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX SG_ Signal_High_Starting : 253|6@0+ (1,0) [0|63] "" XXX + SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_ACC_04: 8 XXX SG_ ACC_State : 53|3@1+ (1,0) [0|7] "" XXX @@ -1560,5 +1562,5 @@ VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; -VAL_ 333 Regulating_State 3 "Regulating" 0 "Not_Regulating" 2 "Regulating_02" 6 "Initializing"; +VAL_ 333 Regulating_State 4 "Regulating" 0 "Not_Regulating" 3 "Regulating_02" 11 "Initializing" 8 "Not_Regulating" 63 "Pre_Regulating"; VAL_ 1004 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "user_overwrite"; From 3d2fa6904b10192f0b70f29ca8f003fa2a044168 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 18:53:54 +0200 Subject: [PATCH 144/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index bebf439ed1c..2afe40853f9 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1527,7 +1527,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX SG_ Regulating_State : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (1,-1446) [0|1023] "" XXX - SG_ Unknown_01 : 36|2@1+ (1,0) [0|3] "" XXX + SG_ Diabling_01 : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling_02 : 37|1@1+ (1,0) [0|3] "" XXX SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX From 2b9cc331062cfb02eca06e3dc81f0297ed389d63 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 20:19:56 +0200 Subject: [PATCH 145/653] Update common.cc add magic bytes for meb acc 02 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index c2a59ee0ff1..a6df4573202 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x14D: // MEB_ACC_02 ACC + crc ^= (uint8_t[]){0xE5, 0x36, 0xFC, 0x14, 0xE1, 0x01, 0xE1, 0x9D, 0x4A, 0x07, 0x8E, 0x22, 0x98, 0xDC, 0x03, 0xCE}[counter]; + break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From e0d8ac69c795e8c3aa5eb3eef284db7a047e4629 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 22:10:15 +0200 Subject: [PATCH 146/653] Update common.cc --- can/common.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index a6df4573202..4234a2377be 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,9 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - case 0x14D: // MEB_ACC_02 ACC - crc ^= (uint8_t[]){0xE5, 0x36, 0xFC, 0x14, 0xE1, 0x01, 0xE1, 0x9D, 0x4A, 0x07, 0x8E, 0x22, 0x98, 0xDC, 0x03, 0xCE}[counter]; - break; + //case 0x14D: // MEB_ACC_02 ACC + // crc ^= (uint8_t[]){0xE5, 0x36, 0xFC, 0x14, 0xE1, 0x01, 0xE1, 0x9D, 0x4A, 0x07, 0x8E, 0x22, 0x98, 0xDC, 0x03, 0xCE}[counter]; + // break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From ef81fc92922eb42a50ad184ebb06448c7fa954bc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 5 Jul 2024 23:49:03 +0200 Subject: [PATCH 147/653] Update common.cc try new magic bytes --- can/common.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index 4234a2377be..e7b0d8155b3 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,9 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - //case 0x14D: // MEB_ACC_02 ACC - // crc ^= (uint8_t[]){0xE5, 0x36, 0xFC, 0x14, 0xE1, 0x01, 0xE1, 0x9D, 0x4A, 0x07, 0x8E, 0x22, 0x98, 0xDC, 0x03, 0xCE}[counter]; - // break; + case 0x14D: // MEB_ACC_02 ACC + crc ^= (uint8_t[]){0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}[counter]; + break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From cc60031f3bacde9a33cbc068c88b1e13324f3ddc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 12:27:47 +0200 Subject: [PATCH 148/653] Update common.h add meb checksum --- can/common.h | 1 + 1 file changed, 1 insertion(+) diff --git a/can/common.h b/can/common.h index 46b3159b9f7..6b60860675f 100644 --- a/can/common.h +++ b/can/common.h @@ -30,6 +30,7 @@ unsigned int toyota_checksum(uint32_t address, const Signal &sig, const std::vec unsigned int subaru_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int chrysler_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const std::vector &d); +unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int hkg_can_fd_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int pedal_checksum(uint32_t address, const Signal &sig, const std::vector &d); From 069db289cbdbd5867891313c7aa5b74031fb0855 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 12:28:34 +0200 Subject: [PATCH 149/653] Update common.pxd add meb checksum --- can/common.pxd | 1 + 1 file changed, 1 insertion(+) diff --git a/can/common.pxd b/can/common.pxd index 4dab92cd5f1..ffb685ec987 100644 --- a/can/common.pxd +++ b/can/common.pxd @@ -19,6 +19,7 @@ cdef extern from "common_dbc.h": TOYOTA_CHECKSUM, PEDAL_CHECKSUM, VOLKSWAGEN_MQB_CHECKSUM, + VOLKSWAGEN_MEB_CHECKSUM, XOR_CHECKSUM, SUBARU_CHECKSUM, CHRYSLER_CHECKSUM From f4c6f9dce304d5a68f2d0b75724dec14324f672c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 12:29:22 +0200 Subject: [PATCH 150/653] Update common_dbc.h add meb checksum --- can/common_dbc.h | 1 + 1 file changed, 1 insertion(+) diff --git a/can/common_dbc.h b/can/common_dbc.h index 19507ecd4e5..c34669b85fc 100644 --- a/can/common_dbc.h +++ b/can/common_dbc.h @@ -25,6 +25,7 @@ enum SignalType { TOYOTA_CHECKSUM, PEDAL_CHECKSUM, VOLKSWAGEN_MQB_CHECKSUM, + VOLKSWAGEN_MEB_CHECKSUM, XOR_CHECKSUM, SUBARU_CHECKSUM, CHRYSLER_CHECKSUM, From 8604179f9be1261fc984e1b7142cf2139c298c13 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 12:30:52 +0200 Subject: [PATCH 151/653] Update dbc.cc change meb dbc to meb checksum --- can/dbc.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/can/dbc.cc b/can/dbc.cc index d3060af5e7b..396cd191687 100644 --- a/can/dbc.cc +++ b/can/dbc.cc @@ -60,7 +60,7 @@ ChecksumState* get_checksum(const std::string& dbc_name) { } else if (startswith(dbc_name, "vw_mqb_2010")) { s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MQB_CHECKSUM, &volkswagen_mqb_checksum}); } else if (startswith(dbc_name, "vw_meb")) { - s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MQB_CHECKSUM, &volkswagen_mqb_checksum}); + s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MEB_CHECKSUM, &volkswagen_meb_checksum}); } else if (startswith(dbc_name, "vw_golf_mk4")) { s = new ChecksumState({8, 4, 0, -1, true, XOR_CHECKSUM, &xor_checksum}); } else if (startswith(dbc_name, "subaru_global_")) { From e95754f7d621b6d254bedaf824580a57c48630b1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 14:29:03 +0200 Subject: [PATCH 152/653] Update common.cc --- can/common.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index e7b0d8155b3..dae8db8e963 100644 --- a/can/common.cc +++ b/can/common.cc @@ -245,9 +245,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0xFD: // ESP_21 Electronic Stability Program crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; break; - //case 0x3BE: // Motor_14 Driver Brake Inputs - // crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; - // break; + case 0x3BE: // Motor_14 Driver Brake Inputs + crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; + break; case 0x121: // Motor_20 Driver Throttle Inputs crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; break; From 222958de6cf5c24485b10f3d093e54fd264a77c4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 15:06:00 +0200 Subject: [PATCH 153/653] Update vw_meb.dbc meb_acc_04 could be tsk, use values of mqb tsk, seems plausible at the moment --- vw_meb.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2afe40853f9..a52b72c26ef 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1553,8 +1553,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Signal_High_Starting : 253|6@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX -BO_ 1004 MEB_ACC_04: 8 XXX - SG_ ACC_State : 53|3@1+ (1,0) [0|7] "" XXX +BO_ 1004 MEB_TSK_01: 8 XXX + SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX BO_ 1019 MEB_ACC_03: 8 XXX @@ -1564,4 +1564,4 @@ VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rej VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; VAL_ 333 Regulating_State 4 "Regulating" 0 "Not_Regulating" 3 "Regulating_02" 11 "Initializing" 8 "Not_Regulating" 63 "Pre_Regulating"; -VAL_ 1004 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "user_overwrite"; +VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault" ; From 6977d74c932d2f691dc5233ab9dc9d66fcc28da9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 22:49:28 +0200 Subject: [PATCH 154/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a52b72c26ef..39218f21897 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1468,7 +1468,7 @@ BO_ 317 MEB_EPS_01: 32 XXX SG_ Steering_Angle_VZ_02 : 36|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Angle_02 : 40|15@1+ (0.0171,0) [0|65535] "" XXX SG_ Steering_Angle_VZ : 55|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle : 76|16@1+ (0.00906,0) [0|32767] "" XXX + SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX From f1d979bb7bad704584fb6c8d46cf1c871ec04f5a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 23:39:28 +0200 Subject: [PATCH 155/653] Update vw_meb.dbc --- vw_meb.dbc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 39218f21897..fdcf12c8593 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1462,6 +1462,10 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX +BO_ 522 MEB_ABS_01: 64 XXX + SG_ Yaw_Rate_VZ : 33|1@0+ (1,0) [0|1] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.001,-32.768) [0|255] "" XXX + BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX @@ -1526,7 +1530,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX SG_ Regulating_State : 21|6@0+ (1,0) [0|15] "" XXX - SG_ Accel : 24|11@1+ (1,-1446) [0|1023] "" XXX + SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX SG_ Diabling_01 : 36|1@0+ (1,0) [0|1] "" XXX SG_ Disabling_02 : 37|1@1+ (1,0) [0|3] "" XXX SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX From 1b4c76d13b5f2afa79d2f836e18aa72f81ebce06 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 6 Jul 2024 23:45:49 +0200 Subject: [PATCH 156/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index fdcf12c8593..aeee126164c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1464,7 +1464,7 @@ BO_ 258 MEB_ESP_04: 48 XXX BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate_VZ : 33|1@0+ (1,0) [0|1] "" XXX - SG_ Yaw_Rate : 200|16@1+ (0.001,-32.768) [0|255] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX From 0737ad411a883d6b92b62f5da6f03e876a0814d5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 7 Jul 2024 14:39:33 +0200 Subject: [PATCH 157/653] Update vw_meb.dbc --- vw_meb.dbc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index aeee126164c..ac23b17ca6a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1529,7 +1529,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX - SG_ Regulating_State : 21|6@0+ (1,0) [0|15] "" XXX + SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX SG_ Diabling_01 : 36|1@0+ (1,0) [0|1] "" XXX SG_ Disabling_02 : 37|1@1+ (1,0) [0|3] "" XXX @@ -1567,5 +1567,4 @@ VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; -VAL_ 333 Regulating_State 4 "Regulating" 0 "Not_Regulating" 3 "Regulating_02" 11 "Initializing" 8 "Not_Regulating" 63 "Pre_Regulating"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault" ; From dacaced260b8b79d8978af5b9ad3d81a9bbc7e59 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 7 Jul 2024 14:58:17 +0200 Subject: [PATCH 158/653] Update vw_meb.dbc --- vw_meb.dbc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ac23b17ca6a..6b586f3b2ea 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1531,8 +1531,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX - SG_ Diabling_01 : 36|1@0+ (1,0) [0|1] "" XXX - SG_ Disabling_02 : 37|1@1+ (1,0) [0|3] "" XXX + SG_ Enabling_TBD : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling_TBD : 37|1@1+ (1,0) [0|3] "" XXX SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX @@ -1546,15 +1546,15 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_02 : 71|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_03 : 74|3@0+ (1,0) [0|7] "" XXX - SG_ Stopped : 77|1@0+ (1,0) [0|1] "" XXX - SG_ End_of_Stopped : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling : 77|1@0+ (1,0) [0|1] "" XXX + SG_ Disabled_Hold : 79|1@0+ (1,0) [0|1] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_5 : 232|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ Signal_High_Starting : 253|6@0+ (1,0) [0|63] "" XXX + SG_ Signal_03 : 253|6@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX From 1f96fe882c476aba7d2e72b5a30cbb9054328f0d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 7 Jul 2024 17:17:03 +0200 Subject: [PATCH 159/653] Update vw_meb.dbc --- vw_meb.dbc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 6b586f3b2ea..eb4a167a539 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1531,8 +1531,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX - SG_ Enabling_TBD : 36|1@0+ (1,0) [0|1] "" XXX - SG_ Disabling_TBD : 37|1@1+ (1,0) [0|3] "" XXX + SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX @@ -1546,8 +1545,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_02 : 71|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_03 : 74|3@0+ (1,0) [0|7] "" XXX - SG_ Disabling : 77|1@0+ (1,0) [0|1] "" XXX - SG_ Disabled_Hold : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling_or_Active_Hold : 77|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling_or_Request_Hold : 79|1@0+ (1,0) [0|1] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX From c8f90cecc7f8877cb0972ec542b30ec0cc5052e0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:04:28 +0200 Subject: [PATCH 160/653] Update vw_meb.dbc --- vw_meb.dbc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index eb4a167a539..f05a9cfddb7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1532,28 +1532,31 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX - SG_ Signal_01 : 47|8@0+ (1,0) [0|63] "" XXX - SG_ Signal_02 : 55|8@0+ (1,0) [0|63] "" XXX + SG_ Secondary_Accel_03 : 45|6@0+ (1,0) [0|63] "" XXX + SG_ Disabling_02 : 46|1@1+ (1,0) [0|3] "" XXX + SG_ Secondary_Accel_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX SG_ Stopping : 57|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_1 : 59|1@0+ (1,0) [0|1] "" XXX SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX - SG_ Rough_Stopping : 64|1@0+ (1,0) [0|3] "" XXX - SG_ Rough_Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX + SG_ Stopping_02 : 64|1@0+ (1,0) [0|3] "" XXX + SG_ Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_4 : 66|1@0+ (1,0) [0|1] "" XXX - SG_ State_Change_01 : 69|3@0+ (1,0) [0|7] "" XXX + SG_ Anti_Stopping_02 : 67|1@0+ (1,0) [0|7] "" XXX + SG_ Constant_1_7 : 68|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_8 : 69|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_02 : 71|1@0+ (1,0) [0|1] "" XXX SG_ State_Change_03 : 74|3@0+ (1,0) [0|7] "" XXX SG_ Disabling_or_Active_Hold : 77|1@0+ (1,0) [0|1] "" XXX - SG_ Disabling_or_Request_Hold : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling : 79|1@0+ (1,0) [0|1] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_5 : 232|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ Signal_03 : 253|6@0+ (1,0) [0|63] "" XXX + SG_ Secondary_Accel : 253|6@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX From 9192b8aec58aaad563be0a0894371631c60ebc28 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:13:55 +0200 Subject: [PATCH 161/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f05a9cfddb7..0a260bdea67 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1546,8 +1546,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_7 : 68|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_8 : 69|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX - SG_ State_Change_02 : 71|1@0+ (1,0) [0|1] "" XXX - SG_ State_Change_03 : 74|3@0+ (1,0) [0|7] "" XXX + SG_ Anti_Stopping_03 : 71|1@0+ (1,0) [0|1] "" XXX + SG_ Anti_Stopping_04 : 74|3@0+ (1,0) [0|7] "" XXX SG_ Disabling_or_Active_Hold : 77|1@0+ (1,0) [0|1] "" XXX SG_ Disabling : 79|1@0+ (1,0) [0|1] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX From 0aab947bbb1425519edea6a26ae3fe397f8f2b37 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 8 Jul 2024 18:38:10 +0200 Subject: [PATCH 162/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0a260bdea67..15df36d19e5 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1533,7 +1533,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX SG_ Secondary_Accel_03 : 45|6@0+ (1,0) [0|63] "" XXX - SG_ Disabling_02 : 46|1@1+ (1,0) [0|3] "" XXX + SG_ Disabling : 46|1@1+ (1,0) [0|3] "" XXX SG_ Secondary_Accel_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX SG_ Stopping : 57|1@0+ (1,0) [0|1] "" XXX @@ -1549,7 +1549,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Anti_Stopping_03 : 71|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_04 : 74|3@0+ (1,0) [0|7] "" XXX SG_ Disabling_or_Active_Hold : 77|1@0+ (1,0) [0|1] "" XXX - SG_ Disabling : 79|1@0+ (1,0) [0|1] "" XXX + SG_ Disabling_Starting : 79|1@0+ (1,0) [0|1] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX From 2b67a8a078e7daaa8ad125d36418d710775143c5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 19:44:52 +0200 Subject: [PATCH 163/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 15df36d19e5..144dc255de0 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1543,8 +1543,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_4 : 66|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_02 : 67|1@0+ (1,0) [0|7] "" XXX - SG_ Constant_1_7 : 68|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_8 : 69|1@0+ (1,0) [0|1] "" XXX + SG_ Anti_Stopping_06 : 68|1@0+ (1,0) [0|1] "" XXX + SG_ Anti_Stopping_05 : 69|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_03 : 71|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_04 : 74|3@0+ (1,0) [0|7] "" XXX From 7b1cdcfc5b975a365cf4358b629936d0d7e7aed0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 19:55:15 +0200 Subject: [PATCH 164/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 144dc255de0..68e406f991b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1541,7 +1541,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX SG_ Stopping_02 : 64|1@0+ (1,0) [0|3] "" XXX SG_ Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_4 : 66|1@0+ (1,0) [0|1] "" XXX + SG_ Anti_Stopping_07 : 66|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_02 : 67|1@0+ (1,0) [0|7] "" XXX SG_ Anti_Stopping_06 : 68|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_05 : 69|1@0+ (1,0) [0|1] "" XXX From 2ee2df22de3a4cb551182b5f7eec93c7a1b6ed09 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 20:17:01 +0200 Subject: [PATCH 165/653] Update vw_meb.dbc --- vw_meb.dbc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 68e406f991b..29918a1bc34 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1532,8 +1532,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX - SG_ Secondary_Accel_03 : 45|6@0+ (1,0) [0|63] "" XXX - SG_ Disabling : 46|1@1+ (1,0) [0|3] "" XXX + SG_ Secondary_Accel_03 : 46|7@0+ (1,0) [0|63] "" XXX SG_ Secondary_Accel_02 : 55|8@0+ (1,0) [0|63] "" XXX SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX SG_ Stopping : 57|1@0+ (1,0) [0|1] "" XXX @@ -1556,7 +1555,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_5 : 232|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ Secondary_Accel : 253|6@0+ (1,0) [0|63] "" XXX + SG_ Secondary_Accel : 252|5@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX From e4e42923251dd2fa833d196ab3f1662b702f8394 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 20:40:17 +0200 Subject: [PATCH 166/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 29918a1bc34..79034c7a266 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1530,7 +1530,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX - SG_ Accel : 24|11@1+ (0.01,-14.46) [0|1023] "" XXX + SG_ Accel : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX SG_ Secondary_Accel_03 : 46|7@0+ (1,0) [0|63] "" XXX SG_ Secondary_Accel_02 : 55|8@0+ (1,0) [0|63] "" XXX From 25c830c4f6efe571a154e1cf33c4b4beccdbfb6c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 21:03:05 +0200 Subject: [PATCH 167/653] Update vw_meb.dbc first part of meb acc message is exactly acc_07 --- vw_meb.dbc | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 79034c7a266..56d906c3d2f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1528,17 +1528,21 @@ BO_ 768 MEB_ACC_01: 48 XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Stopping_Stronger : 14|1@0+ (1,0) [0|1] "" XXX - SG_ Regulating_Strength : 21|6@0+ (1,0) [0|15] "" XXX - SG_ Accel : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX - SG_ User_Override_State : 35|3@1+ (1,0) [0|3] "" XXX - SG_ Secondary_Accel_03 : 46|7@0+ (1,0) [0|63] "" XXX - SG_ Secondary_Accel_02 : 55|8@0+ (1,0) [0|63] "" XXX - SG_ Starting : 56|1@0+ (1,0) [0|1] "" XXX - SG_ Stopping : 57|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_1 : 59|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_State : 63|4@0+ (1,0) [0|31] "" XXX - SG_ Stopping_02 : 64|1@0+ (1,0) [0|3] "" XXX + SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_DynErhoehung : 14|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1.0,0.0) [0.0|1] "" XXX + SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX SG_ Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_07 : 66|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_02 : 67|1@0+ (1,0) [0|7] "" XXX @@ -1567,5 +1571,13 @@ BO_ 1019 MEB_ACC_03: 8 XXX VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; -VAL_ 333 ACC_State 0 "disabled" 1 "initializing" 2 "ready" 3 "active" 4 "pre_active" 5 "pre_inactive" 6 "temp_fault" 7 "fault" 12 "user_overwrite" 11 "pre_user_overwrite"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault" ; +VAL_ 333 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert" ; +VAL_ 333 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert" ; +VAL_ 333 ACC_StartStopp_Info 0 "Motorlauf_langfristig_nicht_notwendig_Stoppfreigabe" 1 "Motoranlauf_nicht_zwingend_notwendig_Stoppverbot_keine_Startanforderung" 2 "Motoranlauf_zwingend_notwendig_Startanforderung" 3 "Systemfehler" ; +VAL_ 333 ACC_Sollbeschleunigung_02 2046 "Neutralwert" 2047 "Fehler" ; +VAL_ 333 ACC_Anfahren 0 "keine_Anforderung_Anfahren" 1 "Anforderung_Anfahren" ; +VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht" ; +VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert" ; +VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System" ; +VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv" ; From c101c9d91b9767d46a6f35797d1c05cdd4906711 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 21:18:36 +0200 Subject: [PATCH 168/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 56d906c3d2f..5fbfa24bf61 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1551,8 +1551,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_03 : 71|1@0+ (1,0) [0|1] "" XXX SG_ Anti_Stopping_04 : 74|3@0+ (1,0) [0|7] "" XXX - SG_ Disabling_or_Active_Hold : 77|1@0+ (1,0) [0|1] "" XXX - SG_ Disabling_Starting : 79|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX @@ -1581,3 +1580,4 @@ VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht" ; VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert" ; VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System" ; VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv" ; +VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" ; From c52f7409ee12e57f5bf4478335632bca954e47cf Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 9 Jul 2024 21:34:12 +0200 Subject: [PATCH 169/653] Update vw_meb.dbc --- vw_meb.dbc | 49 ++++++++++++++++++++++--------------------------- 1 file changed, 22 insertions(+), 27 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5fbfa24bf61..04ae309428b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1528,37 +1528,32 @@ BO_ 768 MEB_ACC_01: 48 XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_DynErhoehung : 14|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1.0,0.0) [0.0|1] "" XXX - SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX - SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX - SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX - SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX - SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX - SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping : 65|1@0+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping_07 : 66|1@0+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping_02 : 67|1@0+ (1,0) [0|7] "" XXX - SG_ Anti_Stopping_06 : 68|1@0+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping_05 : 69|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_2 : 70|1@0+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping_03 : 71|1@0+ (1,0) [0|1] "" XXX - SG_ Anti_Stopping_04 : 74|3@0+ (1,0) [0|7] "" XXX + SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_DynErhoehung : 14|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX + SG_ Unknown_01 : 69|5@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_1 : 70|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_02 : 71|4@1+ (1,0) [0|1] "" XXX SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_3 : 92|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_5 : 232|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_6 : 235|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_2 : 92|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_3 : 232|1@0+ (1,0) [0|1] "" XXX + SG_ Constant_1_4 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ Secondary_Accel : 252|5@0+ (1,0) [0|63] "" XXX + SG_ ACC_Anhalteweg : 252|5@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX From e37bc54e18469a3abbeb9c078bea6f4a5fab89b9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 18:16:33 +0200 Subject: [PATCH 170/653] Update vw_meb.dbc --- vw_meb.dbc | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 04ae309428b..f4d75a0c140 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1520,10 +1520,35 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ ACC_Set_Speed_1 : 79|4@0+ (1,2) [0|15] "" XXX - SG_ ACC_Set_Speed_2 : 85|6@0+ (5,0) [0|63] "" XXX + SG_ NEW_SIGNAL_5 : 64|4@1+ (1,0) [0|15] "" XXX + SG_ ACC_Set_Speed : 76|10@1+ (0.32,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 86|10@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_6 : 96|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_8 : 106|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_14 : 107|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 109|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 112|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_10 : 120|2@1+ (1,0) [0|3] "" XXX SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 140|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_13 : 145|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 147|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_18 : 186|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 189|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_20 : 265|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_21 : 269|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_24 : 272|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_22 : 274|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_23 : 276|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_25 : 280|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_27 : 287|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_26 : 288|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 290|10@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_28 : 329|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 344|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 354|8@1+ (1,0) [0|63] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1576,3 +1601,4 @@ VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System" ; VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv" ; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" ; +VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; From e2ed04089b435909fb24711a74442611f0ed4455 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 20:36:41 +0200 Subject: [PATCH 171/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f4d75a0c140..04fb3718308 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1521,9 +1521,10 @@ BO_ 591 MEB_Distance_01: 64 XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_5 : 64|4@1+ (1,0) [0|15] "" XXX - SG_ ACC_Set_Speed : 76|10@1+ (0.32,0) [0|15] "" XXX + SG_ ACC_Set_Speed : 76|10@1+ (0.0886,0) [0|15] "" XXX SG_ NEW_SIGNAL_1 : 86|10@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_6 : 96|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_19 : 104|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_8 : 106|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 107|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 109|1@0+ (1,0) [0|1] "" XXX @@ -1533,9 +1534,12 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_11 : 140|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_13 : 145|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_12 : 147|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_16 : 150|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_17 : 158|7@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_18 : 186|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 189|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_Status_ACC : 208|5@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_29 : 225|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_20 : 265|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_21 : 269|3@1+ (1,0) [0|7] "" XXX From 3ae1771a5d0288b9eda45ab4fde8ddbc4fac64a3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 21:31:42 +0200 Subject: [PATCH 172/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 04fb3718308..9dd4f4df341 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1459,6 +1459,8 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_3 : 24|10@1+ (1,0) [0|1023] "" XXX SG_ NEW_SIGNAL_1 : 40|13@1+ (1,0) [0|63] "" XXX SG_ NEW_SIGNAL_2 : 54|1@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX + SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX From ee763acc3b90368363a7ea041c6ae10f6c65d65e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 22:02:47 +0200 Subject: [PATCH 173/653] Update vw_meb.dbc --- vw_meb.dbc | 34 +++++----------------------------- 1 file changed, 5 insertions(+), 29 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9dd4f4df341..1892d45bfe3 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1522,39 +1522,15 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ NEW_SIGNAL_5 : 64|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 0|76@1+ (1,0) [0|7] "" XXX SG_ ACC_Set_Speed : 76|10@1+ (0.0886,0) [0|15] "" XXX - SG_ NEW_SIGNAL_1 : 86|10@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_6 : 96|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_19 : 104|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_8 : 106|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_14 : 107|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 109|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_9 : 112|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_10 : 120|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 86|36@1+ (1,0) [0|3] "" XXX SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_11 : 140|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_13 : 145|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 147|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_16 : 150|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_17 : 158|7@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_18 : 186|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 189|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 123|85@1+ (1,0) [0|31] "" XXX SG_ ACC_Status_ACC : 208|5@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_29 : 225|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_20 : 265|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_3 : 213|55@1+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_21 : 269|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_24 : 272|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_22 : 274|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_23 : 276|4@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_25 : 280|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_27 : 287|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_26 : 288|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 290|10@1+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_28 : 329|4@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_2 : 344|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_3 : 354|8@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_4 : 269|115@1+ (1,0) [0|7] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 54136e48a4b9120126676db5d22a7d6460db1492 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 23:17:20 +0200 Subject: [PATCH 174/653] Update vw_meb.dbc acc 01 in byte parts for the moment --- vw_meb.dbc | 57 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 6 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1892d45bfe3..8ce1c31b54f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1522,15 +1522,60 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ NEW_SIGNAL_1 : 0|76@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 8|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_4 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_6 : 40|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 48|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 56|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_9 : 64|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_10 : 72|4@1+ (1,0) [0|15] "" XXX SG_ ACC_Set_Speed : 76|10@1+ (0.0886,0) [0|15] "" XXX - SG_ NEW_SIGNAL_2 : 86|36@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_11 : 86|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_12 : 88|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_13 : 96|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_14 : 104|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_15 : 112|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_16 : 120|2@1+ (1,0) [0|3] "" XXX SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 123|85@1+ (1,0) [0|31] "" XXX - SG_ ACC_Status_ACC : 208|5@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_3 : 213|55@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_17 : 123|5@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_18 : 128|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_19 : 136|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_20 : 144|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_21 : 152|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_22 : 160|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_23 : 168|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_24 : 176|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_25 : 184|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_26 : 192|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_27 : 200|8@1+ (1,0) [0|255] "" XXX + SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_28 : 211|5@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_29 : 216|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_30 : 224|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_31 : 232|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_32 : 240|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_33 : 248|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_34 : 256|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_35 : 264|4@1+ (1,0) [0|15] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 269|115@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_36 : 269|3@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_37 : 272|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_38 : 280|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_39 : 288|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_40 : 296|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_41 : 304|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_42 : 312|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_43 : 320|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_44 : 328|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_45 : 336|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_46 : 344|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_47 : 352|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_48 : 360|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_49 : 368|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_50 : 376|8@1+ (1,0) [0|255] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 4a6bbd0a964a127cfb9cce27a75ed7acc3e765fd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 11 Jul 2024 23:43:14 +0200 Subject: [PATCH 175/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 8ce1c31b54f..a89d73fb519 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1605,7 +1605,8 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ Constant_1_3 : 232|1@0+ (1,0) [0|1] "" XXX SG_ Constant_1_4 : 235|1@0+ (1,0) [0|1] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ ACC_Anhalteweg : 252|5@0+ (1,0) [0|63] "" XXX + SG_ Init : 246|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Anhalteweg : 253|6@0+ (1,0) [0|63] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX From 767e97461af3ee8ca6e1e58325f20e3fcbb17307 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 12 Jul 2024 00:10:07 +0200 Subject: [PATCH 176/653] Update vw_meb.dbc --- vw_meb.dbc | 77 ++++++++++++++++++------------------------------------ 1 file changed, 25 insertions(+), 52 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a89d73fb519..08781d4ae95 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1522,60 +1522,33 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ NEW_SIGNAL_1 : 7|8@0+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_2 : 8|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_3 : 16|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_4 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_5 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_6 : 40|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_7 : 48|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_8 : 56|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_9 : 64|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_10 : 72|4@1+ (1,0) [0|15] "" XXX - SG_ ACC_Set_Speed : 76|10@1+ (0.0886,0) [0|15] "" XXX - SG_ NEW_SIGNAL_11 : 86|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_12 : 88|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_13 : 96|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_14 : 104|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_15 : 112|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_16 : 120|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_22 : 69|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 73|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Set_Speed : 76|10@1+ (0.32,0) [0|15] "" XXX + SG_ Lead_Distance : 86|10@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_6 : 96|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_7 : 101|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 106|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_4 : 113|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 120|1@0+ (1,0) [0|1] "" XXX SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_17 : 123|5@1+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_18 : 128|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_19 : 136|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_20 : 144|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_21 : 152|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_22 : 160|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_23 : 168|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_24 : 176|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_25 : 184|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_26 : 192|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_27 : 200|8@1+ (1,0) [0|255] "" XXX + SG_ Constant_F : 140|4@1+ (1,0) [0|15] "" XXX + SG_ Constant_63 : 144|6@1+ (1,0) [0|63] "" XXX + SG_ Heartbeat : 150|10@1+ (1,0) [0|3] "" XXX + SG_ Constant_FFFF : 160|16@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_20 : 186|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_21 : 189|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_17 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_28 : 211|5@1+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_29 : 216|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_30 : 224|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_31 : 232|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_32 : 240|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_33 : 248|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_34 : 256|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_35 : 264|4@1+ (1,0) [0|15] "" XXX - SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_36 : 269|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_37 : 272|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_38 : 280|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_39 : 288|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_40 : 296|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_41 : 304|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_42 : 312|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_43 : 320|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_44 : 328|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_45 : 336|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_46 : 344|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_47 : 352|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_48 : 360|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_49 : 368|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_50 : 376|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_18 : 226|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_19 : 228|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_11 : 240|15@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_12 : 268|4@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 287|12@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_1 : 344|8@1+ (1,0) [0|127] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 9be8873f7c75b6dfa5d8874d9e41aa504f3e25ea Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 12 Jul 2024 21:07:00 +0200 Subject: [PATCH 177/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 08781d4ae95..f726f5af12c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1543,7 +1543,8 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_18 : 226|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_19 : 228|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 240|15@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_12 : 268|4@0+ (1,0) [0|1] "" XXX + SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_12 : 269|3@0+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX From 8ace740d8d4267d8bf5277ce2d3bd9e2ae2cd664 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 13 Jul 2024 14:02:57 +0200 Subject: [PATCH 178/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f726f5af12c..7d85aa3d77c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1543,8 +1543,9 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_18 : 226|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_19 : 228|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 240|15@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_12 : 267|1@0+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_12 : 269|3@0+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_2 : 269|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX From ed4a6fead125d1532d5e670a4d87efb99661e42c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 13 Jul 2024 15:58:21 +0200 Subject: [PATCH 179/653] Update vw_meb.dbc first part of meb acc 01 is vw acc_12 --- vw_meb.dbc | 86 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 22 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7d85aa3d77c..9821579aca2 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1522,16 +1522,25 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ NEW_SIGNAL_22 : 69|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_9 : 73|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Set_Speed : 76|10@1+ (0.32,0) [0|15] "" XXX - SG_ Lead_Distance : 86|10@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_6 : 96|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_7 : 101|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_5 : 106|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_4 : 113|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 120|1@0+ (1,0) [0|1] "" XXX - SG_ FCW_Active : 122|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Tempolimit : 64|5@1+ (1,0) [0|31] "" OTA_FC + SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX + SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX + SG_ ACC_Display_Prio : 96|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ACC_rel_Objekt_Zusatzanz : 98|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ACC_Gesetzte_Zeitluecke : 101|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ ACC_Optischer_Fahrerhinweis : 104|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Warnhinweis : 105|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_EGO_Fahrzeug : 106|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ ACC_Relevantes_Objekt_02 : 109|2@1+ (1,0) [0|3] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ACC_Wunschgeschw_erreicht : 112|1@1+ (1,0) [0|1] "" OTA_FC + SG_ ACC_Anzeige_Zeitluecke : 113|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Texte_Primaeranz_02 : 114|6@1+ (1,0) [0|63] "" Vector__XXX + SG_ ACC_Texte_Zusatzanz_02 : 120|6@1+ (1,0) [0|63] "" Vector__XXX + SG_ STA_Primaeranz : 126|2@1+ (1,0) [0|3] "" Vector__XXX SG_ Constant_F : 140|4@1+ (1,0) [0|15] "" XXX SG_ Constant_63 : 144|6@1+ (1,0) [0|63] "" XXX SG_ Heartbeat : 150|10@1+ (1,0) [0|3] "" XXX @@ -1543,14 +1552,28 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_18 : 226|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_19 : 228|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_11 : 240|15@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_33 : 265|2@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_12 : 267|1@0+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_2 : 269|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_31 : 270|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_32 : 271|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_15 : 287|12@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_39 : 299|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_34 : 329|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_37 : 330|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_27 : 331|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_10 : 334|3@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_23 : 338|3@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_1 : 344|8@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_8 : 354|8@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_24 : 364|8@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_25 : 374|7@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_26 : 382|1@0+ (1,0) [0|1] "" XXX + BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1590,18 +1613,37 @@ BO_ 1004 MEB_TSK_01: 8 XXX BO_ 1019 MEB_ACC_03: 8 XXX -VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" ; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; +VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; -VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault" ; -VAL_ 333 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert" ; -VAL_ 333 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert" ; -VAL_ 333 ACC_StartStopp_Info 0 "Motorlauf_langfristig_nicht_notwendig_Stoppfreigabe" 1 "Motoranlauf_nicht_zwingend_notwendig_Stoppverbot_keine_Startanforderung" 2 "Motoranlauf_zwingend_notwendig_Startanforderung" 3 "Systemfehler" ; -VAL_ 333 ACC_Sollbeschleunigung_02 2046 "Neutralwert" 2047 "Fehler" ; -VAL_ 333 ACC_Anfahren 0 "keine_Anforderung_Anfahren" 1 "Anforderung_Anfahren" ; -VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht" ; -VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert" ; -VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System" ; -VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv" ; -VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" ; +VAL_ 333 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert"; +VAL_ 333 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 333 ACC_StartStopp_Info 0 "Motorlauf_langfristig_nicht_notwendig_Stoppfreigabe" 1 "Motoranlauf_nicht_zwingend_notwendig_Stoppverbot_keine_Startanforderung" 2 "Motoranlauf_zwingend_notwendig_Startanforderung" 3 "Systemfehler"; +VAL_ 333 ACC_Sollbeschleunigung_02 2046 "Neutralwert" 2047 "Fehler"; +VAL_ 333 ACC_Anfahren 0 "keine_Anforderung_Anfahren" 1 "Anforderung_Anfahren"; +VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht"; +VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert"; +VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; +VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv"; +VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; +VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; +VAL_ 768 ACC_Wunschgeschw_Farbe 0 "Grundfarbe" 1 "Farbe_1"; +VAL_ 768 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung"; +VAL_ 768 ACA_Querfuehrung 0 "keine_Anzeige_oder_init" 1 "passiv" 2 "aktiv" 3 "Warnung"; +VAL_ 768 ACC_Regelung_AIO 0 "Regelung_Ampel_nicht_aktiv" 1 "Regelung_Ampel_aktiv"; +VAL_ 768 ACC_Wunschgeschw_02 1023 "keine_Anzeige"; +VAL_ 768 ACC_Abstandsindex_02 0 "Audi (Init), VW (passiv/aktiv_Freifahrt)" 1022 "aus_passiv" 1023 "aktiv_Freifahrt"; +VAL_ 768 ACC_Display_Prio 0 "hoechste_Prio" 1 "mittlere_Prio" 2 "geringe_Prio" 3 "keine_Prio"; +VAL_ 768 ACC_rel_Objekt_Zusatzanz 0 "keine Anzeige" 1 "Relevantes_Objekt_erkannt" 2 "Relevantes_Objekt_Abstandswarnung"; +VAL_ 768 ACC_Gesetzte_Zeitluecke 0 "keine_Anzeige" 1 "Zeitluecke_1" 2 "Zeitluecke_2" 3 "Zeitluecke_3" 4 "Zeitluecke_4" 5 "Zeitluecke_5" 6 "nicht_definiert" 7 "nicht_definiert"; +VAL_ 768 ACC_Optischer_Fahrerhinweis 0 "optischer_Fahrerhinweis_AUS" 1 "optischer_Fahrerhinweis_EIN"; +VAL_ 768 ACC_Warnhinweis 0 "kein_Warnhinweis" 1 "Warnhinweis"; +VAL_ 768 ACC_EGO_Fahrzeug 0 "keine_Anzeige" 1 "aktiv" 2 "Warnung" 3 "aktiv_stop" 4 "passiv"; +VAL_ 768 ACC_Relevantes_Objekt_02 0 "keine_Anzeige" 1 "Relevantes_Objekt_erkannt" 2 "Relevantes_Objekt_Warnung" 3 "passiv"; +VAL_ 768 ACC_Wunschgeschw_erreicht 0 "Wunschgeschwindigkeit_nicht_erreicht" 1 "Wunschgeschwindigkeit_erreicht"; +VAL_ 768 ACC_Anzeige_Zeitluecke 0 "Anzeige_Zeitluecke_nicht_angefordert" 1 "Anzeige_Zeitluecke_angefordert"; +VAL_ 768 ACC_Texte_Primaeranz_02 0 "keine Anzeige" 1 "VDA_ACC_Symbol_YYY_kmh_mph" 2 "Kurven_Symbol_YYY_kmh_mph" 3 "Tempolimit_Symbol_YYY_kmh_mph" 4 "ACC_anfahrbereit" 5 "eingestellte_Zeitluecke" 6 "Tuer offen !" 7 "Stehendes Objekt voraus" 8 "o o o" 9 "ACC aus" 10 "ACC startet" 11 "ACC Sensor Sicht !" 12 "ACC nicht verfuegbar" 13 "ACC Fehler" 14 "ESP Eingriff" 15 "ESP PASSIV !" 16 "Parkbremse !" 17 "Geschwindigkeitsgrenze" 18 "Waehlhebelposition !" 19 "Fahrer Gurtschloss offen !" 20 "Schalthebelposition !" 21 "Drehzahl !" 22 "HDC aktiv" 23 "Kupplung betaetigt" 24 "Gang einlegen !" 25 "Bremse ueberhitzt !" 26 "Steigung_Gefaelle_zu_gross" 27 "ABSTAND" 28 "Rechtsueberholen_verhindert" 29 "Linksueberholen_verhindert" 30 "Kreuzungs_Symbol" 31 "Kreisverkehr_Symbol" 32 "Gefaelle_Symbol" 33 "Tempolimit_Kurvenassistent_ein" 34 "Kurvenassistent_ein" 35 "Tempolimitassistent_ein" 36 "Achtung_Geschwindigkeitsueberschreitung" 37 "Tempolimit_und_Kurvenassistent_nicht_verfuegbar" 38 "Tempolimit_nicht_verfuegbar" 39 "Kurvenassistent_nicht_verfuegbar" 40 "Autobahnausfahrt_Symbol" 41 "Stauende_Symbol" 42 "Engstelle_Symbol" 43 "STP_verfuegbar" 44 "Ampel_vertikal" 45 "Ampel_horizontal" 46 "STA_verfuegbar"; +VAL_ 768 ACC_Texte_Zusatzanz_02 0 "keine_Anzeige" 1 "ACC_AUS" 2 "Standby" 3 "UEBERTRETEN" 4 "ABSTAND" 5 "DISTANZ_1" 6 "DISTANZ_2" 7 "DISTANZ_3" 8 "DISTANZ_4" 9 "DISTANZ_5" 10 "DISTANZ_1__dyn" 11 "DISTANZ_2__dyn" 12 "DISTANZ_3__dyn" 13 "DISTANZ_4__dyn" 14 "DISTANZ_5__dyn" 15 "DISTANZ_1__comf" 16 "DISTANZ_2__comf" 17 "DISTANZ_3__comf" 18 "DISTANZ_4__comf" 19 "DISTANZ_5__comf" 20 "DISTANZ_1__efficiency" 21 "DISTANZ_2__efficiency" 22 "DISTANZ_3__efficiency" 23 "DISTANZ_4__efficiency" 24 "DISTANZ_5__efficiency" 25 "DISTANZ_1__Stau" 26 "DISTANZ_2__Stau" 27 "DISTANZ_3__Stau" 28 "DISTANZ_4__Stau" 29 "DISTANZ_5__Stau" 30 "ACHTUNG" 31 "Abstandsanzeige" 32 "Abstandsanzeige_Warnung_aktiviert" 33 "STA_verfuegbar" 34 "Engstelle" 35 "RUV_aktiv_Rechtsverkehr" 36 "RUV_aktiv_Linksverkehr" 37 "STP_Verfuegbar" 38 "AW_Warnschwelle_1" 39 "AW_Warnschwelle_2" 40 "AW_Warnschwelle_3" 41 "AW_Warnung_1" 42 "AW_Warnung_2" 43 "AW_Warnung_3"; +VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_Warnung"; VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; +VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From d1b4c9fe4e16be115e4951070a5bfeb0599e5d88 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 13 Jul 2024 17:55:07 +0200 Subject: [PATCH 180/653] Update vw_meb.dbc --- vw_meb.dbc | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9821579aca2..2d1875cf269 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1555,25 +1555,18 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ NEW_SIGNAL_33 : 265|2@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_12 : 267|1@0+ (1,0) [0|7] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_2 : 269|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_31 : 270|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_32 : 271|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_32 : 271|3@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 287|12@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_39 : 299|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_34 : 329|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_37 : 330|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_27 : 331|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_10 : 334|3@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_23 : 338|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_1 : 344|8@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_8 : 354|8@1+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_24 : 364|8@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_25 : 374|7@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_26 : 382|1@0+ (1,0) [0|1] "" XXX - + SG_ NEW_SIGNAL_3 : 287|3@1+ (1,0) [0|3] "" XXX + SG_ Abstand : 290|10@1+ (0.32,0) [0|3] "" XXX + SG_ Reaktion_Tempo : 331|3@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_10 : 334|8@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_1 : 344|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 354|8@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_4 : 364|8@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_25 : 374|9@1+ (1,0) [0|3] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From c5897eda1ba1b2df287ad79ae7741dafe38a1007 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 13 Jul 2024 18:23:22 +0200 Subject: [PATCH 181/653] Update vw_meb.dbc use strategy to pass through unknown signals --- vw_meb.dbc | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 2d1875cf269..5e257f9df52 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1541,32 +1541,14 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Texte_Primaeranz_02 : 114|6@1+ (1,0) [0|63] "" Vector__XXX SG_ ACC_Texte_Zusatzanz_02 : 120|6@1+ (1,0) [0|63] "" Vector__XXX SG_ STA_Primaeranz : 126|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ Constant_F : 140|4@1+ (1,0) [0|15] "" XXX - SG_ Constant_63 : 144|6@1+ (1,0) [0|63] "" XXX - SG_ Heartbeat : 150|10@1+ (1,0) [0|3] "" XXX - SG_ Constant_FFFF : 160|16@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_20 : 186|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_21 : 189|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_17 : 199|1@0+ (1,0) [0|1] "" XXX + SG_ Signal_2 : 128|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX + SG_ Signal_3_1 : 192|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_18 : 226|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_19 : 228|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_11 : 240|15@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_33 : 265|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_12 : 267|1@0+ (1,0) [0|7] "" XXX + SG_ Signal_3_2 : 211|45@1+ (1,0) [0|35184372088831] "" XXX + SG_ Signal_4_1 : 256|12@1+ (1,0) [0|4095] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_32 : 271|3@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_13 : 274|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_14 : 276|4@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_16 : 280|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 287|3@1+ (1,0) [0|3] "" XXX - SG_ Abstand : 290|10@1+ (0.32,0) [0|3] "" XXX - SG_ Reaktion_Tempo : 331|3@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_10 : 334|8@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_1 : 344|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_2 : 354|8@1+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_4 : 364|8@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_25 : 374|9@1+ (1,0) [0|3] "" XXX + SG_ Signal_4_2 : 269|51@1+ (1,0) [0|2.25179981368525e+15] "" XXX + SG_ Signal_5 : 320|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1586,19 +1568,11 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX - SG_ Unknown_01 : 69|5@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_1 : 70|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_02 : 71|4@1+ (1,0) [0|1] "" XXX + SG_ Signal_2_1 : 64|13@1+ (1,0) [0|8191] "" XXX SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX - SG_ Constant_FE : 87|8@0+ (1,0) [0|255] "" XXX - SG_ ACC_Active : 90|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_2 : 92|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_3 : 232|1@0+ (1,0) [0|1] "" XXX - SG_ Constant_1_4 : 235|1@0+ (1,0) [0|1] "" XXX - SG_ Speed : 236|10@1+ (0.1,0) [0|1023] "" XXX - SG_ Init : 246|2@1+ (1,0) [0|3] "" XXX - SG_ ACC_Anhalteweg : 253|6@0+ (1,0) [0|63] "" XXX - SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX + SG_ Signal_2_2 : 80|48@1+ (1,0) [0|281474976710655] "" XXX + SG_ Signal_3 : 128|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX + SG_ Signal_4 : 192|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX From 54ce90a5a49767508291b9165f172308726a63be Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 09:45:23 +0200 Subject: [PATCH 182/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5e257f9df52..123535b908a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1545,9 +1545,13 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Signal_3_1 : 192|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Signal_3_2 : 211|45@1+ (1,0) [0|35184372088831] "" XXX - SG_ Signal_4_1 : 256|12@1+ (1,0) [0|4095] "" XXX + SG_ Signal_4_1 : 256|9@1+ (1,0) [0|511] "" XXX + SG_ ACC_Relevantes_Objekt_03 : 265|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Temp_Inactive : 266|1@0+ (1,0) [0|1] "" XXX + SG_ Signal_4_2 : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ Signal_4_2 : 269|51@1+ (1,0) [0|2.25179981368525e+15] "" XXX + SG_ ACC_Cruise_Type : 269|3@1+ (1,0) [0|7] "" XXX + SG_ Signal_4_3 : 272|48@1+ (1,0) [0|281474976710655] "" XXX SG_ Signal_5 : 320|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX BO_ 333 MEB_ACC_02: 32 XXX From 9340ded17f5b3fa29754556ae038ebb65b1f8d0c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 14:14:25 +0200 Subject: [PATCH 183/653] Update vw_meb.dbc --- vw_meb.dbc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 123535b908a..0005f838d16 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1485,8 +1485,10 @@ BO_ 771 HCA_03: 24 XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX BO_ 588 MEB_Drive_State_01: 16 XXX - SG_ Blind_Spot_Right : 14|4@1+ (1,0) [0|15] "" XXX - SG_ Blind_Spot_Left : 21|4@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Warn_Left : 29|1@0+ (1,0) [0|1] "" XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX From b79e80b9e4d8c093a3859b94f3f35f37513df1ba Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 17:45:16 +0200 Subject: [PATCH 184/653] Update vw_meb.dbc --- vw_meb.dbc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0005f838d16..7ce08b768db 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1574,11 +1574,17 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX - SG_ Signal_2_1 : 64|13@1+ (1,0) [0|8191] "" XXX + SG_ ACC_Anhalten_Bremse : 64|11@1+ (0.005,0) [0|2046] "" XXX SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX - SG_ Signal_2_2 : 80|48@1+ (1,0) [0|281474976710655] "" XXX - SG_ Signal_3 : 128|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX - SG_ Signal_4 : 192|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX + SG_ SET_ME_0XFE : 80|8@1+ (1,0) [0|255] "" XXX + SG_ ACC_AKTIV_regelt : 90|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X1 : 92|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X9 : 232|4@1+ (1,0) [0|15] "" XXX + SG_ Speed : 236|10@1+ (0.1,0) [0|15] "" XXX + SG_ Unknown_State_1_1 : 248|2@1+ (1,0) [0|3] "" XXX + SG_ Unknown_State_1_2 : 250|2@1+ (1,0) [0|3] "" XXX + SG_ Unknown_State_1_3 : 252|2@1+ (1,0) [0|3] "" XXX + SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX @@ -1599,6 +1605,7 @@ VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv"; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; +VAL_ 333 ACC_Anhalten_Bremse 2046 "neutral"; VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; VAL_ 768 ACC_Wunschgeschw_Farbe 0 "Grundfarbe" 1 "Farbe_1"; VAL_ 768 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung"; From 5f1ce170cac56485825fe85518fb1c59b2d58bd8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 20:04:40 +0200 Subject: [PATCH 185/653] Update vw_meb.dbc --- vw_meb.dbc | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7ce08b768db..0c3815b4d40 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1528,6 +1528,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ Unknown_01 : 73|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX @@ -1543,18 +1544,32 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Texte_Primaeranz_02 : 114|6@1+ (1,0) [0|63] "" Vector__XXX SG_ ACC_Texte_Zusatzanz_02 : 120|6@1+ (1,0) [0|63] "" Vector__XXX SG_ STA_Primaeranz : 126|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ Signal_2 : 128|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX - SG_ Signal_3_1 : 192|16@1+ (1,0) [0|65535] "" XXX + SG_ SET_ME_0X3FF : 140|10@1+ (1,0) [0|15] "" XXX + SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX + SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX + SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX - SG_ Signal_3_2 : 211|45@1+ (1,0) [0|35184372088831] "" XXX - SG_ Signal_4_1 : 256|9@1+ (1,0) [0|511] "" XXX - SG_ ACC_Relevantes_Objekt_03 : 265|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Temp_Inactive : 266|1@0+ (1,0) [0|1] "" XXX - SG_ Signal_4_2 : 267|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Status_Change : 211|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX + SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Override_or_Standby : 266|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Cruise_Type : 269|3@1+ (1,0) [0|7] "" XXX - SG_ Signal_4_3 : 272|48@1+ (1,0) [0|281474976710655] "" XXX - SG_ Signal_5 : 320|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX + SG_ NEW_SIGNAL_3 : 269|2@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_2 : 271|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_1 : 273|2@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_12 : 276|3@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_16 : 279|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_15 : 280|1@0+ (1,0) [0|1] "" XXX + SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_20 : 290|9@1+ (1,0) [0|7] "" XXX + SG_ PACC_Events : 332|4@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_19 : 334|9@1+ (0.5,0) [0|3] "" XXX + SG_ NEW_SIGNAL_17 : 344|9@1+ (0.5,0) [0|63] "" XXX + SG_ NEW_SIGNAL_21 : 354|9@1+ (0.5,0) [0|63] "" XXX + SG_ NEW_SIGNAL_23 : 364|9@1+ (0.5,0) [0|15] "" XXX + SG_ NEW_SIGNAL_24 : 374|9@1+ (0.5,0) [0|3] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1626,4 +1641,7 @@ VAL_ 768 ACC_Texte_Primaeranz_02 0 "keine Anzeige" 1 "VDA_ACC_Symbol_YYY_kmh_mph VAL_ 768 ACC_Texte_Zusatzanz_02 0 "keine_Anzeige" 1 "ACC_AUS" 2 "Standby" 3 "UEBERTRETEN" 4 "ABSTAND" 5 "DISTANZ_1" 6 "DISTANZ_2" 7 "DISTANZ_3" 8 "DISTANZ_4" 9 "DISTANZ_5" 10 "DISTANZ_1__dyn" 11 "DISTANZ_2__dyn" 12 "DISTANZ_3__dyn" 13 "DISTANZ_4__dyn" 14 "DISTANZ_5__dyn" 15 "DISTANZ_1__comf" 16 "DISTANZ_2__comf" 17 "DISTANZ_3__comf" 18 "DISTANZ_4__comf" 19 "DISTANZ_5__comf" 20 "DISTANZ_1__efficiency" 21 "DISTANZ_2__efficiency" 22 "DISTANZ_3__efficiency" 23 "DISTANZ_4__efficiency" 24 "DISTANZ_5__efficiency" 25 "DISTANZ_1__Stau" 26 "DISTANZ_2__Stau" 27 "DISTANZ_3__Stau" 28 "DISTANZ_4__Stau" 29 "DISTANZ_5__Stau" 30 "ACHTUNG" 31 "Abstandsanzeige" 32 "Abstandsanzeige_Warnung_aktiviert" 33 "STA_verfuegbar" 34 "Engstelle" 35 "RUV_aktiv_Rechtsverkehr" 36 "RUV_aktiv_Linksverkehr" 37 "STP_Verfuegbar" 38 "AW_Warnschwelle_1" 39 "AW_Warnschwelle_2" 40 "AW_Warnschwelle_3" 41 "AW_Warnung_1" 42 "AW_Warnung_2" 43 "AW_Warnung_3"; VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_Warnung"; VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; +VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; +VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; + VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From 0fd0b372fe9b7e54647664eb8112bdf5a7de4ede Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 22:23:28 +0200 Subject: [PATCH 186/653] Update vw_meb.dbc --- vw_meb.dbc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0c3815b4d40..e8c77bcbe53 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1351,6 +1351,16 @@ BO_ 294 HCA_01: 8 Frontsensorik SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar +BO_ 285 LH_EPS_02: 8 Gateway_D4C7 + SG_ EPS_02_CRC : 0|8@1+ (1,0) [0|255] "" SCU_D4 + SG_ EPS_02_BZ : 8|4@1+ (1,0) [0|15] "" SCU_D4 + SG_ EPS_Notlauf : 12|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX + SG_ EPS_Lastinfo : 16|8@1+ (1,0) [0|253] "Unit_Amper" Vector__XXX + SG_ EPS_Unterstuetzungsleistung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" SCU_D4 + SG_ EPS_Drehzahlreserve : 32|7@1+ (10,0) [0|1000] "Unit_DegreOfArcPerSecon" SCU_D4 + SG_ EPS_VZ_Drehzahlreserve : 39|1@1+ (1.0,0.0) [0.0|1] "" SCU_D4 + SG_ EPS_Leistungsanforderung : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX From c5912e5735b5c0291f549b55354f97ab4f3562e4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 22:46:17 +0200 Subject: [PATCH 187/653] Update vw_meb.dbc --- vw_meb.dbc | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index e8c77bcbe53..452ad49ec03 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1465,15 +1465,23 @@ BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX BO_ 258 MEB_ESP_04: 48 XXX - SG_ NEW_SIGNAL_4 : 23|8@0+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_3 : 24|10@1+ (1,0) [0|1023] "" XXX - SG_ NEW_SIGNAL_1 : 40|13@1+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_2 : 54|1@0+ (1,0) [0|3] "" XXX + SG_ Lateral_Accel : 16|8@1+ (1,-128) [0|255] "" XXX + SG_ Longitudinal_Accel : 24|8@1- (1,0) [0|255] "" XXX + SG_ Yaw_Rate : 40|14@1+ (1,0) [0|16383] "" XXX + SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX +BO_ 313 ESP_NEW_3: 32 XXX + SG_ XCHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX + SG_ BRAKE_PRESSED_1 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_PRESSED_2 : 27|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_PRESSED_3 : 48|1@0+ (1,0) [0|1] "" XXX + SG_ BRAKE_PRESSURE : 76|10@1+ (1,0) [0|1023] "" XXX + BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate_VZ : 33|1@0+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX @@ -1494,6 +1502,12 @@ BO_ 771 HCA_03: 24 XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX +BO_ 267 MOTOR_NEW_1: 32 XXX + SG_ XCHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ ACCEL_PEDAL : 12|8@1+ (0.4,0) [0|255] "" XXX + SG_ TSK_STATUS : 88|3@1+ (1,0) [0|7] "" XXX + BO_ 588 MEB_Drive_State_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX @@ -1653,5 +1667,5 @@ VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_W VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; - +VAL_ 267 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From 99bc83470b088e69a6700948d27142488390cc58 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 14 Jul 2024 22:47:28 +0200 Subject: [PATCH 188/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 452ad49ec03..8f6e86a630d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1667,5 +1667,5 @@ VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_W VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; -VAL_ 267 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From 58a5fea04134e085249cb30e7120e84bc73d0d2b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 16:42:30 +0200 Subject: [PATCH 189/653] Update vw_meb.dbc --- vw_meb.dbc | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 8f6e86a630d..99b676b3738 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1572,20 +1572,17 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_02 : 189|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Status_Change : 211|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Override_or_Standby : 266|1@0+ (1,0) [0|1] "" XXX + SG_ Not_ACC_AKTIV_regelt : 266|1@0+ (1,0) [0|1] "" XXX SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 269|2@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_2 : 271|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_1 : 273|2@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_12 : 276|3@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_16 : 279|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_15 : 280|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX + SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_20 : 290|9@1+ (1,0) [0|7] "" XXX SG_ PACC_Events : 332|4@0+ (1,0) [0|1] "" XXX @@ -1620,9 +1617,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ SET_ME_0X1 : 92|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X9 : 232|4@1+ (1,0) [0|15] "" XXX SG_ Speed : 236|10@1+ (0.1,0) [0|15] "" XXX - SG_ Unknown_State_1_1 : 248|2@1+ (1,0) [0|3] "" XXX - SG_ Unknown_State_1_2 : 250|2@1+ (1,0) [0|3] "" XXX - SG_ Unknown_State_1_3 : 252|2@1+ (1,0) [0|3] "" XXX + SG_ Accel_Boost : 248|6@1+ (1,0) [0|3] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 1004 MEB_TSK_01: 8 XXX @@ -1643,8 +1638,9 @@ VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht"; VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert"; VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv"; -VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; VAL_ 333 ACC_Anhalten_Bremse 2046 "neutral"; +VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; +VAL_ 333 Accel_Boost 3 "Driving" 0 "Stop" 2 "Driving" 1 "Driving"; VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; VAL_ 768 ACC_Wunschgeschw_Farbe 0 "Grundfarbe" 1 "Farbe_1"; VAL_ 768 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung"; @@ -1664,8 +1660,10 @@ VAL_ 768 ACC_Anzeige_Zeitluecke 0 "Anzeige_Zeitluecke_nicht_angefordert" 1 "Anze VAL_ 768 ACC_Texte_Primaeranz_02 0 "keine Anzeige" 1 "VDA_ACC_Symbol_YYY_kmh_mph" 2 "Kurven_Symbol_YYY_kmh_mph" 3 "Tempolimit_Symbol_YYY_kmh_mph" 4 "ACC_anfahrbereit" 5 "eingestellte_Zeitluecke" 6 "Tuer offen !" 7 "Stehendes Objekt voraus" 8 "o o o" 9 "ACC aus" 10 "ACC startet" 11 "ACC Sensor Sicht !" 12 "ACC nicht verfuegbar" 13 "ACC Fehler" 14 "ESP Eingriff" 15 "ESP PASSIV !" 16 "Parkbremse !" 17 "Geschwindigkeitsgrenze" 18 "Waehlhebelposition !" 19 "Fahrer Gurtschloss offen !" 20 "Schalthebelposition !" 21 "Drehzahl !" 22 "HDC aktiv" 23 "Kupplung betaetigt" 24 "Gang einlegen !" 25 "Bremse ueberhitzt !" 26 "Steigung_Gefaelle_zu_gross" 27 "ABSTAND" 28 "Rechtsueberholen_verhindert" 29 "Linksueberholen_verhindert" 30 "Kreuzungs_Symbol" 31 "Kreisverkehr_Symbol" 32 "Gefaelle_Symbol" 33 "Tempolimit_Kurvenassistent_ein" 34 "Kurvenassistent_ein" 35 "Tempolimitassistent_ein" 36 "Achtung_Geschwindigkeitsueberschreitung" 37 "Tempolimit_und_Kurvenassistent_nicht_verfuegbar" 38 "Tempolimit_nicht_verfuegbar" 39 "Kurvenassistent_nicht_verfuegbar" 40 "Autobahnausfahrt_Symbol" 41 "Stauende_Symbol" 42 "Engstelle_Symbol" 43 "STP_verfuegbar" 44 "Ampel_vertikal" 45 "Ampel_horizontal" 46 "STA_verfuegbar"; VAL_ 768 ACC_Texte_Zusatzanz_02 0 "keine_Anzeige" 1 "ACC_AUS" 2 "Standby" 3 "UEBERTRETEN" 4 "ABSTAND" 5 "DISTANZ_1" 6 "DISTANZ_2" 7 "DISTANZ_3" 8 "DISTANZ_4" 9 "DISTANZ_5" 10 "DISTANZ_1__dyn" 11 "DISTANZ_2__dyn" 12 "DISTANZ_3__dyn" 13 "DISTANZ_4__dyn" 14 "DISTANZ_5__dyn" 15 "DISTANZ_1__comf" 16 "DISTANZ_2__comf" 17 "DISTANZ_3__comf" 18 "DISTANZ_4__comf" 19 "DISTANZ_5__comf" 20 "DISTANZ_1__efficiency" 21 "DISTANZ_2__efficiency" 22 "DISTANZ_3__efficiency" 23 "DISTANZ_4__efficiency" 24 "DISTANZ_5__efficiency" 25 "DISTANZ_1__Stau" 26 "DISTANZ_2__Stau" 27 "DISTANZ_3__Stau" 28 "DISTANZ_4__Stau" 29 "DISTANZ_5__Stau" 30 "ACHTUNG" 31 "Abstandsanzeige" 32 "Abstandsanzeige_Warnung_aktiviert" 33 "STA_verfuegbar" 34 "Engstelle" 35 "RUV_aktiv_Rechtsverkehr" 36 "RUV_aktiv_Linksverkehr" 37 "STP_Verfuegbar" 38 "AW_Warnschwelle_1" 39 "AW_Warnschwelle_2" 40 "AW_Warnschwelle_3" 41 "AW_Warnung_1" 42 "AW_Warnung_2" 43 "AW_Warnung_3"; VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_Warnung"; +VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; +VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; +VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; -VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From e5ac6f0cbc19e72dbc032226b9cd39a293d2313e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:24:22 +0200 Subject: [PATCH 190/653] Update vw_meb.dbc --- vw_meb.dbc | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 99b676b3738..6e387e26388 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1548,11 +1548,12 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX + SG_ Unknown_Area_01 : 0|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX SG_ ACC_Tempolimit : 64|5@1+ (1,0) [0|31] "" OTA_FC SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ Unknown_01 : 73|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X1_2 : 73|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX @@ -1572,7 +1573,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_02 : 189|1@0+ (1,0) [0|1] "" XXX + SG_ Hold_First_Active : 189|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Status_Change : 211|1@0+ (1,0) [0|1] "" XXX @@ -1584,13 +1585,13 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_20 : 290|9@1+ (1,0) [0|7] "" XXX - SG_ PACC_Events : 332|4@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_19 : 334|9@1+ (0.5,0) [0|3] "" XXX - SG_ NEW_SIGNAL_17 : 344|9@1+ (0.5,0) [0|63] "" XXX - SG_ NEW_SIGNAL_21 : 354|9@1+ (0.5,0) [0|63] "" XXX - SG_ NEW_SIGNAL_23 : 364|9@1+ (0.5,0) [0|15] "" XXX - SG_ NEW_SIGNAL_24 : 374|9@1+ (0.5,0) [0|3] "" XXX + SG_ Lead_Distance : 290|9@1+ (0.32,0) [0|7] "Unit_Meter" XXX + SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "" XXX + SG_ Zeitluecke_1_Signal : 334|9@1+ (1,0) [0|3] "" XXX + SG_ Zeitluecke_2_Signal : 344|9@1+ (1,0) [0|63] "" XXX + SG_ Zeitluecke_3_Signal : 354|9@1+ (1,0) [0|63] "" XXX + SG_ Zeitluecke_4_Signal : 364|9@1+ (1,0) [0|15] "" XXX + SG_ Zeitluecke_5_Signal : 374|9@1+ (1,0) [0|3] "" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1664,6 +1665,13 @@ VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; +VAL_ 768 Unknown_03 0 "None" 106 "State_01" 208 "State_02"; VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; +VAL_ 768 ACC_Special_Events 3 "ACC_Starting_Without_User_Available"; +VAL_ 768 Zeitluecke_1_Signal 0 "keine Anzeige"; +VAL_ 768 Zeitluecke_2_Signal 0 "keine Anzeige" 32 "Minimum"; +VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; +VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; +VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From 9247f1d19536b9724bb772295ef430c4fb1975ad Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 17:26:44 +0200 Subject: [PATCH 191/653] Update vw_meb.dbc --- vw_meb.dbc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 6e387e26388..7c784814e89 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1502,11 +1502,9 @@ BO_ 771 HCA_03: 24 XXX SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX -BO_ 267 MOTOR_NEW_1: 32 XXX - SG_ XCHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ ACCEL_PEDAL : 12|8@1+ (0.4,0) [0|255] "" XXX - SG_ TSK_STATUS : 88|3@1+ (1,0) [0|7] "" XXX +BO_ 267 MEB_Motor_01: 32 XXX + SG_ Accel_Pedal : 12|8@1+ (0.4,0) [0|255] "" XXX + SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX BO_ 588 MEB_Drive_State_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX From 9649e18de5bc957b4dcf57be8e40259b98d62f3b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 18:13:17 +0200 Subject: [PATCH 192/653] Update vw_meb.dbc --- vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7c784814e89..7bd3765c066 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1475,8 +1475,6 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX BO_ 313 ESP_NEW_3: 32 XXX - SG_ XCHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 11|4@0+ (1,0) [0|15] "" XXX SG_ BRAKE_PRESSED_1 : 16|1@0+ (1,0) [0|1] "" XXX SG_ BRAKE_PRESSED_2 : 27|1@0+ (1,0) [0|1] "" XXX SG_ BRAKE_PRESSED_3 : 48|1@0+ (1,0) [0|1] "" XXX From 163741787849e08b1cda1f1176c415716fa1e489 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 23:26:57 +0200 Subject: [PATCH 193/653] Update vw_meb.dbc --- vw_meb.dbc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 7bd3765c066..22ea12425d0 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1474,11 +1474,12 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX -BO_ 313 ESP_NEW_3: 32 XXX - SG_ BRAKE_PRESSED_1 : 16|1@0+ (1,0) [0|1] "" XXX - SG_ BRAKE_PRESSED_2 : 27|1@0+ (1,0) [0|1] "" XXX - SG_ BRAKE_PRESSED_3 : 48|1@0+ (1,0) [0|1] "" XXX - SG_ BRAKE_PRESSURE : 76|10@1+ (1,0) [0|1023] "" XXX +BO_ 313 MEB_ESP_05: 32 XXX + SG_ Brake_Pressed_1 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX + SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressure : 76|10@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate_VZ : 33|1@0+ (1,0) [0|1] "" XXX From 06bd3e120fc5b0052e2ba564224516de55f81beb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 15 Jul 2024 23:57:18 +0200 Subject: [PATCH 194/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 22ea12425d0..eb7d9d03441 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1570,13 +1570,13 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX - SG_ Hold_First_Active : 189|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_05 : 189|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX - SG_ ACC_Status_Change : 211|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX - SG_ Not_ACC_AKTIV_regelt : 266|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX @@ -1664,7 +1664,7 @@ VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; VAL_ 768 Unknown_03 0 "None" 106 "State_01" 208 "State_02"; VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; -VAL_ 768 ACC_Special_Events 3 "ACC_Starting_Without_User_Available"; +VAL_ 768 ACC_Special_Events 3 "Starting_Available" 0 "None" 5 "Speed_Limit_Camera" 9 "Street_Type" 4 "Speed_Limit_in_Nav"; VAL_ 768 Zeitluecke_1_Signal 0 "keine Anzeige"; VAL_ 768 Zeitluecke_2_Signal 0 "keine Anzeige" 32 "Minimum"; VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; From fb6648bd23f9c979963bcd9ce5a8723bd10e45ed Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 16 Jul 2024 17:10:48 +0200 Subject: [PATCH 195/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index eb7d9d03441..fb274a563fb 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1550,7 +1550,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ SET_ME_0X1_2 : 73|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_02 : 73|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX @@ -1582,7 +1582,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX - SG_ Lead_Distance : 290|9@1+ (0.32,0) [0|7] "Unit_Meter" XXX + SG_ Lead_Distance : 290|10@1+ (0.32,0) [0|7] "Unit_Meter" XXX SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "" XXX SG_ Zeitluecke_1_Signal : 334|9@1+ (1,0) [0|3] "" XXX SG_ Zeitluecke_2_Signal : 344|9@1+ (1,0) [0|63] "" XXX From 6b6c279489ba1a663548531d8db840c76c0a8f92 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 16 Jul 2024 18:15:25 +0200 Subject: [PATCH 196/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index fb274a563fb..e790b8cf1c6 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1574,6 +1574,8 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX From b4f0f2479a79afdf43732cc0175e283c46ac5697 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 17 Jul 2024 18:12:59 +0200 Subject: [PATCH 197/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index e790b8cf1c6..e0eea886728 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1610,7 +1610,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Anhalten_Bremse : 64|11@1+ (0.005,0) [0|2046] "" XXX + SG_ ACC_Anhalteweg : 64|11@1+ (0.01,0) [0|2046] "" XXX SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX SG_ SET_ME_0XFE : 80|8@1+ (1,0) [0|255] "" XXX SG_ ACC_AKTIV_regelt : 90|1@0+ (1,0) [0|1] "" XXX @@ -1638,7 +1638,7 @@ VAL_ 333 ACC_Anhalten 0 "kein_Anhalten_gewuenscht" 1 "Anhalten_gewuenscht"; VAL_ 333 ACC_Typ 0 "Basis_ACC" 1 "ACC_mit_FollowToStop" 2 "ACC_mit_StopAndGo" 3 "ACC_nicht_codiert"; VAL_ 333 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 "Anforderung_Minimale_Bremsung_aktiv"; -VAL_ 333 ACC_Anhalten_Bremse 2046 "neutral"; +VAL_ 333 ACC_Anhalteweg 2046 "Neutralwert" 2047 "Fehler"; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; VAL_ 333 Accel_Boost 3 "Driving" 0 "Stop" 2 "Driving" 1 "Driving"; VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; From 102e73a818d4c2e72cfb88a0ad11168374a0c729 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:04:55 +0200 Subject: [PATCH 198/653] Update vw_meb.dbc --- vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index e0eea886728..bd315632332 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1574,6 +1574,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_01 : 225|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX From 0c3e243d63f23cb6671e40d66d0e30a4f93b39a4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 17 Jul 2024 20:30:09 +0200 Subject: [PATCH 199/653] Update vw_meb.dbc --- vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index bd315632332..70fe331bf1f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1574,6 +1574,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_08 : 224|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_01 : 225|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX From 6e7d265dd38eb8de934da6411255a690b27cbf43 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:50:48 +0200 Subject: [PATCH 200/653] Update vw_meb.dbc add checksum and counter for meb_eps_01 --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 70fe331bf1f..1d763dd4a27 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1486,6 +1486,8 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX SG_ Steering_Angle_VZ_02 : 36|1@0+ (1,0) [0|1] "" XXX From a022776de7d995a998dcbfa3c07d6649c5b92f14 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 18 Jul 2024 17:24:51 +0200 Subject: [PATCH 201/653] Update common.cc add magic bytes candidate for meb eps 01 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index dae8db8e963..b24061ed374 100644 --- a/can/common.cc +++ b/can/common.cc @@ -233,6 +233,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0x14D: // MEB_ACC_02 ACC crc ^= (uint8_t[]){0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}[counter]; break; + case 0x13D: // MEB_EPS_01 EPS + crc ^= (uint8_t[]){0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}[counter]; + break; case 0x86: // LWI_01 Steering Angle crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; break; From 8ecf9fc5cc75d6817b908de749ce0aec8b9b612f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 18 Jul 2024 18:35:33 +0200 Subject: [PATCH 202/653] Update vw_meb.dbc --- vw_meb.dbc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1d763dd4a27..09f57cf9308 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1526,18 +1526,18 @@ BO_ 589 MEB_Side_Assist_01: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ State_Area : 16|38@1+ (1,0) [0|274877906943] "" XXX - SG_ Same_Lane_01_Distance : 54|22@1+ (0.0001,0) [0|4294967295] "Unit_Meter" XXX - SG_ Same_Lane_01_a : 76|10@1+ (1,-500) [0|31] "" XXX - SG_ Left_Lane_01_Distance : 86|22@1+ (0.0001,0) [0|4294967295] "" XXX - SG_ Left_Lane_01_a : 108|10@1+ (1,-500) [0|15] "" XXX - SG_ Right_Lane_01_Distance : 118|22@1+ (0.0001,0) [0|1023] "" XXX - SG_ Right_Lane_01_a : 140|10@1+ (1,-500) [0|15] "" XXX - SG_ Same_Lane_02_Distance : 150|22@1+ (0.0001,1) [0|4095] "" XXX - SG_ Same_Lane_02_a : 172|10@1+ (1,-500) [0|31] "" XXX - SG_ Left_Lane_02_Distance : 182|22@1+ (0.0001,0) [0|4095] "" XXX - SG_ Left_Lane_02_a : 204|10@1+ (1,-500) [0|1023] "" XXX - SG_ Right_Lane_02_Distance : 214|22@1+ (0.0001,0) [0|4095] "" XXX - SG_ Right_Lane_02_a : 236|10@1+ (1,-500) [0|1023] "" XXX + SG_ Same_Lane_01_Long_Distance : 54|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 86|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 118|22@1+ (3.2e-05,0) [0|1023] "Unit_Meter" XXX + SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 150|22@1+ (3.2e-05,1) [0|4095] "Unit_Meter" XXX + SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 182|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX + SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 214|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX + SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ NEW_SIGNAL_2 : 246|10@1+ (1,-500) [0|1023] "" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,0) [0|31] "" XXX SG_ NEW_SIGNAL_4 : 264|6@1+ (1,0) [0|31] "" XXX From 148904a5a177de79b38a990356a6c78620cd8e2f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 18 Jul 2024 18:48:08 +0200 Subject: [PATCH 203/653] Update vw_meb.dbc --- vw_meb.dbc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 09f57cf9308..a8345b098ad 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1525,7 +1525,14 @@ BO_ 589 MEB_Side_Assist_01: 64 XXX SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX BO_ 591 MEB_Distance_01: 64 XXX - SG_ State_Area : 16|38@1+ (1,0) [0|274877906943] "" XXX + SG_ NEW_SIGNAL_14 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ Same_Lane_01_Detection : 16|6@1+ (1,0) [0|63] "" XXX + SG_ Left_Lane_01_Detection : 22|6@1+ (1,0) [0|3] "" XXX + SG_ Right_Lane_01_Detection : 28|6@1+ (1,0) [0|15] "" XXX + SG_ Same_Lane_02_Detection : 34|6@1+ (1,0) [0|63] "" XXX + SG_ Left_Lane_02_Detection : 40|6@1+ (1,0) [0|63] "" XXX + SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Long_Distance : 54|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Left_Lane_01_Long_Distance : 86|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX From 2ff3088d5d9d0b7454b787e9ce7d6e37370db330 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 19 Jul 2024 11:51:59 +0200 Subject: [PATCH 204/653] Update vw_meb.dbc --- vw_meb.dbc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a8345b098ad..4b19a9b1425 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1496,12 +1496,12 @@ BO_ 317 MEB_EPS_01: 32 XXX SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX - SG_ Inactive : 13|1@0+ (1,0) [0|1] "" XXX - SG_ Active : 14|1@0+ (1,0) [0|3] "" XXX - SG_ Torque_Wind_Down : 22|7@0+ (1,0) [0|125] "" XXX + SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX + SG_ Active : 14|1@1+ (1,0) [0|3] "" XXX + SG_ Torque_Wind_Down : 16|7@1+ (1,0) [0|125] "" XXX SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX - SG_ VZ : 39|1@0+ (1,0) [0|1] "" XXX - SG_ Active_02 : 66|1@0+ (1,0) [0|1] "" XXX + SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX + SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX BO_ 267 MEB_Motor_01: 32 XXX SG_ Accel_Pedal : 12|8@1+ (0.4,0) [0|255] "" XXX From 346e643cff8cc621419d2c464de6df34223a7a20 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 19 Jul 2024 13:09:42 +0200 Subject: [PATCH 205/653] Update vw_meb.dbc add counter and checksum for meb_abs_01 --- vw_meb.dbc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 4b19a9b1425..8f57b8c131a 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1482,7 +1482,9 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressure : 76|10@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX - SG_ Yaw_Rate_VZ : 33|1@0+ (1,0) [0|1] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX From 9998d21eaf319b1d300ac8e07c7f536e565116cc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 19 Jul 2024 14:01:28 +0200 Subject: [PATCH 206/653] Update vw_meb.dbc remove count and chks for now --- vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 8f57b8c131a..8574ac90be0 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1482,8 +1482,6 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressure : 76|10@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX From 3a2d0828d0413a72aa8d9124d98fb3ed8dd55e86 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 12:43:07 +0200 Subject: [PATCH 207/653] Update vw_meb.dbc roughly better factor for lead distane hud --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 8574ac90be0..ae3da2c7345 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1595,7 +1595,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX - SG_ Lead_Distance : 290|10@1+ (0.32,0) [0|7] "Unit_Meter" XXX + SG_ Lead_Distance : 290|10@1+ (0.1,0) [0|7] "Unit_Meter" XXX SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "" XXX SG_ Zeitluecke_1_Signal : 334|9@1+ (1,0) [0|3] "" XXX SG_ Zeitluecke_2_Signal : 344|9@1+ (1,0) [0|63] "" XXX From 8bc4b65f0c95b118ce6face665ff31a0a3f6806b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 13:56:28 +0200 Subject: [PATCH 208/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ae3da2c7345..e3125cbd075 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1676,7 +1676,7 @@ VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDB VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; VAL_ 768 Unknown_03 0 "None" 106 "State_01" 208 "State_02"; -VAL_ 768 Lead_Type 5 "Motorcycle" 3 "Car" 0 "None" 2 "Truck"; +VAL_ 768 Lead_Type 5 "Bicycle" 3 "Car" 0 "None" 2 "Truck" 4 "Motorcycle"; VAL_ 768 ACC_Special_Events 3 "Starting_Available" 0 "None" 5 "Speed_Limit_Camera" 9 "Street_Type" 4 "Speed_Limit_in_Nav"; VAL_ 768 Zeitluecke_1_Signal 0 "keine Anzeige"; VAL_ 768 Zeitluecke_2_Signal 0 "keine Anzeige" 32 "Minimum"; From 36be2be334ce071bf3fdf5ab6cca74762fbd5839 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 14:01:42 +0200 Subject: [PATCH 209/653] Update vw_meb.dbc fix distance signal --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index e3125cbd075..1b8cee51074 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1539,7 +1539,7 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Long_Distance : 118|22@1+ (3.2e-05,0) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Same_Lane_02_Long_Distance : 150|22@1+ (3.2e-05,1) [0|4095] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 150|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Left_Lane_02_Long_Distance : 182|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX From cd10e0679ecc06a826195e16c5d0f75b53b8e025 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 18:15:25 +0200 Subject: [PATCH 210/653] Update vw_meb.dbc --- vw_meb.dbc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1b8cee51074..68d5d6b5184 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1504,7 +1504,8 @@ BO_ 771 HCA_03: 24 XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX BO_ 267 MEB_Motor_01: 32 XXX - SG_ Accel_Pedal : 12|8@1+ (0.4,0) [0|255] "" XXX + SG_ Accel_Pedal : 12|9@1+ (0.4,0) [0|255] "" XXX + SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX BO_ 588 MEB_Drive_State_01: 16 XXX From 2a002d8db04217a5440e4ecf51e4c1e80208b460 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 18:17:54 +0200 Subject: [PATCH 211/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 68d5d6b5184..a402ac0af37 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1504,7 +1504,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX BO_ 267 MEB_Motor_01: 32 XXX - SG_ Accel_Pedal : 12|9@1+ (0.4,0) [0|255] "" XXX + SG_ Accel_Pedal_Pressure : 12|9@1+ (0.4,0) [0|255] "" XXX SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX From be1e2df1d604937bf782b9ea539bd5a31d31ee67 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 20 Jul 2024 20:15:50 +0200 Subject: [PATCH 212/653] Update vw_meb.dbc fix meb_esp_01 --- vw_meb.dbc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index a402ac0af37..ff33e00d01d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1446,15 +1446,15 @@ BO_ 1355 Parkhilfe_04: 8 Gateway BO_ 252 MEB_ESP_01: 48 XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressed : 49|2@0+ (1,0) [0|3] "" XXX + SG_ Brake_Pressure : 42|8@1+ (1,0) [0|3] "" XXX SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ VL_Brake_Pressure : 157|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX - SG_ VR_Brake_Pressure : 165|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX - SG_ HL_Brake_Pressure : 173|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX - SG_ HR_Brake_Pressure : 181|6@0+ (1.5873,0) [0|100] "Unit_Percent" XXX + SG_ VL_Brake_Pressure : 154|6@1+ (1,0) [0|100] "" XXX + SG_ VR_Brake_Pressure : 162|6@1+ (1,0) [0|100] "" XXX + SG_ HL_Brake_Pressure : 170|6@1+ (1,0) [0|100] "" XXX + SG_ HR_Brake_Pressure : 178|6@1+ (1,0) [0|100] "" XXX SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX From 2f269c98d2a1ee24154eb5c5769f8c4f638e8a4d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 21 Jul 2024 11:30:39 +0200 Subject: [PATCH 213/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index ff33e00d01d..76b18ca3bc2 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1451,10 +1451,10 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ VL_Brake_Pressure : 154|6@1+ (1,0) [0|100] "" XXX - SG_ VR_Brake_Pressure : 162|6@1+ (1,0) [0|100] "" XXX - SG_ HL_Brake_Pressure : 170|6@1+ (1,0) [0|100] "" XXX - SG_ HR_Brake_Pressure : 178|6@1+ (1,0) [0|100] "" XXX + SG_ VL_Brake_Pressure : 152|8@1+ (1,0) [0|100] "" XXX + SG_ VR_Brake_Pressure : 160|8@1+ (1,0) [0|100] "" XXX + SG_ HL_Brake_Pressure : 168|8@1+ (1,0) [0|100] "" XXX + SG_ HR_Brake_Pressure : 176|8@1+ (1,0) [0|100] "" XXX SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX From 8b3544c4e10b6c13fd17e49be66bcae44e150438 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 21 Jul 2024 16:06:37 +0200 Subject: [PATCH 214/653] Update vw_meb.dbc --- vw_meb.dbc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 76b18ca3bc2..5dbeacdc71b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1549,9 +1549,8 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ NEW_SIGNAL_2 : 246|10@1+ (1,-500) [0|1023] "" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,0) [0|31] "" XXX SG_ NEW_SIGNAL_4 : 264|6@1+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_7 : 270|2@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_1 : 272|5@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_5 : 277|4@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_1 : 270|6@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_5 : 277|6@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX From 4702f71cd8df864a50942603efadae93d14e6986 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 21 Jul 2024 17:02:48 +0200 Subject: [PATCH 215/653] Update vw_meb.dbc fix meb distance, same lane 01 developing --- vw_meb.dbc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5dbeacdc71b..6306073fe8c 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1534,9 +1534,11 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Left_Lane_02_Detection : 40|6@1+ (1,0) [0|63] "" XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 54|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.032,0) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Left_Lane_01_Long_Distance : 86|22@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KiloMeter_per_Hour" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Long_Distance : 118|22@1+ (3.2e-05,0) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX @@ -1547,8 +1549,8 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Long_Distance : 214|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ NEW_SIGNAL_2 : 246|10@1+ (1,-500) [0|1023] "" XXX - SG_ NEW_SIGNAL_3 : 256|8@1+ (1,0) [0|31] "" XXX - SG_ NEW_SIGNAL_4 : 264|6@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX + SG_ NEW_SIGNAL_4 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ NEW_SIGNAL_1 : 270|6@1+ (1,0) [0|127] "" XXX SG_ NEW_SIGNAL_5 : 277|6@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX From 5bb763d6128af9158cdff899c9ada812f0be7799 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 21 Jul 2024 21:43:06 +0200 Subject: [PATCH 216/653] Update vw_meb.dbc fix long same lane 01 distance factor, have to measure exactly soon --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 6306073fe8c..51b122342f7 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1535,7 +1535,7 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.032,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.05,0) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KiloMeter_per_Hour" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX From 58e0fddb511b9bcc37167c9b89f72b0ad9f0a2d3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:29:02 +0200 Subject: [PATCH 217/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 51b122342f7..9b69a81f0dc 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1482,6 +1482,8 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressure : 76|10@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX From 25632cc6c191194060ca50ca6813767e706144c9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:30:36 +0200 Subject: [PATCH 218/653] Update common.cc add meb abs 01 magic bytes --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index b24061ed374..b79f53451db 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x20A: // MEB_ABS_01 + crc ^= (uint8_t[]){0x7B, 0xBA, 0x1A, 0x74, 0x25, 0xC5, 0x5B, 0xC7, 0xB8, 0x69, 0xE5, 0xDC, 0x3C, 0x8F, 0x50, 0xEC}[counter]; + break; case 0x14D: // MEB_ACC_02 ACC crc ^= (uint8_t[]){0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}[counter]; break; From 27439bc149fb3ccd8a341e4c8c5a9724c1ec3a84 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 17:36:57 +0200 Subject: [PATCH 219/653] Update vw_meb.dbc add checksum and counter for meb eps 01 --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 9b69a81f0dc..8515c9c35c2 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1445,6 +1445,8 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX BO_ 252 MEB_ESP_01: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressure : 42|8@1+ (1,0) [0|3] "" XXX SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX From 83df5f5c7ea3c2a16b2ae788ac6f0c576e2b3afc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:14:04 +0200 Subject: [PATCH 220/653] Update common.cc add magic bytes --- can/common.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/can/common.cc b/can/common.cc index b79f53451db..777ba84dcef 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,8 +230,11 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0xFC: // MEB_ESP_01 + crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; + break; case 0x20A: // MEB_ABS_01 - crc ^= (uint8_t[]){0x7B, 0xBA, 0x1A, 0x74, 0x25, 0xC5, 0x5B, 0xC7, 0xB8, 0x69, 0xE5, 0xDC, 0x3C, 0x8F, 0x50, 0xEC}[counter]; + crc ^= (uint8_t[]){0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}[counter]; break; case 0x14D: // MEB_ACC_02 ACC crc ^= (uint8_t[]){0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}[counter]; From 7bee88c7ac8f2e5f78287ac38ba79df2dba4d092 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:16:53 +0200 Subject: [PATCH 221/653] Update vw_meb.dbc --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 8515c9c35c2..3b4a032818b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1508,6 +1508,8 @@ BO_ 771 HCA_03: 24 XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX BO_ 267 MEB_Motor_01: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Accel_Pedal_Pressure : 12|9@1+ (0.4,0) [0|255] "" XXX SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX From 247faf3ce4bfccb0bcff2bb2e3c27ed3283eedd7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:22:30 +0200 Subject: [PATCH 222/653] Update common.cc add magic bytes for meb motor 01 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index 777ba84dcef..9d49f278623 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x10B: // MEB_MOTOR_01 + crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; + break; case 0xFC: // MEB_ESP_01 crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; break; From b26107487f7630b5dfbf38bba57cd14279aa01d9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:33:04 +0200 Subject: [PATCH 223/653] Update common.cc add magic bytes --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index 9d49f278623..2ffdfd1dff3 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x14C: // MEB_ESP_03 + crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; + break; case 0x10B: // MEB_MOTOR_01 crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; break; From 12210fdfcbb53da3227615104491f4634a4f43f7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:33:52 +0200 Subject: [PATCH 224/653] Update vw_meb.dbc add checksum and counter for meb_esp_03 --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 3b4a032818b..1d202c62210 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1464,6 +1464,8 @@ BO_ 192 MEB_ESP_02: 32 XXX SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX BO_ 332 MEB_ESP_03: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX BO_ 258 MEB_ESP_04: 48 XXX From 6ac13932ce35acd4b2e88a842982cee9dc37b91c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:40:11 +0200 Subject: [PATCH 225/653] Update common.cc add myagic bytes motor_14 --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index 2ffdfd1dff3..8c7b806803f 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x3BE: // MOTOR_14 + crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; + break; case 0x14C: // MEB_ESP_03 crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; break; From 1348e364cd26fd32983db5cfa1480fb96c2ff5e4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:40:59 +0200 Subject: [PATCH 226/653] Update vw_meb.dbc add checksum and counter for motor_14 --- vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1d202c62210..3c32b484b02 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -230,6 +230,8 @@ BO_ 168 Motor_12: 8 Motor_Diesel_MQB SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB BO_ 958 Motor_14: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME From ea3a34490346a251da5507a9c354ef280b530da2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 22 Jul 2024 19:03:52 +0200 Subject: [PATCH 227/653] Update common.cc motor_14 already exists, removing duplicate entry --- can/common.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/can/common.cc b/can/common.cc index 8c7b806803f..2ffdfd1dff3 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,9 +230,6 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { - case 0x3BE: // MOTOR_14 - crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; - break; case 0x14C: // MEB_ESP_03 crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; break; From 34e82e67760ad8e14b3c29918bf37b0f333bbbd8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 18:48:10 +0200 Subject: [PATCH 228/653] Update vw_meb.dbc add travel assist signal --- vw_meb.dbc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 3c32b484b02..0da30b53142 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1646,7 +1646,12 @@ BO_ 333 MEB_ACC_02: 32 XXX BO_ 1004 MEB_TSK_01: 8 XXX SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX -BO_ 1019 MEB_ACC_03: 8 XXX +BO_ 619 MEB_Travel_Assist_01: 8 XXX + SG_ CHK : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Travel_Assist_Status : 13|3@1+ (1,0) [0|3] "" XXX + SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX + SG_ Travel_Assist_Available : 23|1@0+ (1,0) [0|1] "" XXX VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; @@ -1664,6 +1669,9 @@ VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 " VAL_ 333 ACC_Anhalteweg 2046 "Neutralwert" 2047 "Fehler"; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; VAL_ 333 Accel_Boost 3 "Driving" 0 "Stop" 2 "Driving" 1 "Driving"; +VAL_ 619 Travel_Assist_Status 4 "enabled" 0 "disabled" 2 "ready" 3 "pre_ready"; +VAL_ 619 Travel_Assist_Request 4 "enable" 3 "disable" 0 "no_request" 1 "error"; +VAL_ 619 Travel_Assist_Available 0 "not_available" 1 "available"; VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; VAL_ 768 ACC_Wunschgeschw_Farbe 0 "Grundfarbe" 1 "Farbe_1"; VAL_ 768 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung"; From 9931dd30c311c9656f28aa6ed2a56cba1124716c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 18:49:24 +0200 Subject: [PATCH 229/653] Update vw_meb.dbc fix --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 0da30b53142..f9b8e8f0a0d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1651,7 +1651,7 @@ BO_ 619 MEB_Travel_Assist_01: 8 XXX SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX SG_ Travel_Assist_Status : 13|3@1+ (1,0) [0|3] "" XXX SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX - SG_ Travel_Assist_Available : 23|1@0+ (1,0) [0|1] "" XXX + SG_ Travel_Assist_Available : 23|1@1+ (1,0) [0|1] "" XXX VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; From 03e93ba9d14aabae15bf150b2dd0ad5efd011f21 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 19:45:54 +0200 Subject: [PATCH 230/653] Update vw_meb.dbc --- vw_meb.dbc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index f9b8e8f0a0d..660d981f320 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1449,8 +1449,10 @@ BO_ 1355 Parkhilfe_04: 8 Gateway BO_ 252 MEB_ESP_01: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ AEB_Breaking_01 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ AEB_Breaking_02 : 32|8@1+ (1,0) [0|255] "" XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 42|8@1+ (1,0) [0|3] "" XXX + SG_ Brake_Pressure : 42|9@1+ (1,0) [0|3] "" XXX SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX @@ -1477,6 +1479,7 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX + SG_ AEB_Active : 123|1@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX @@ -1485,7 +1488,8 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 76|10@1+ (1,0) [0|1023] "" XXX + SG_ AEB_Active : 56|2@1+ (1,0) [0|3] "" XXX + SG_ Brake_Pressure : 76|11@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From e9be8c636b1e2ebaf5529bd22003c782e3fe6df1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 20:43:58 +0200 Subject: [PATCH 231/653] Update vw_meb.dbc lower long distance factor.. i still dont understand, why min and max measurements differ this much. have a better low distance value for now --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 660d981f320..3bdb3d98293 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1549,7 +1549,7 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.04,0) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KiloMeter_per_Hour" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX From 36ac965fbcb2e2efe66b527d585dc2fa7cfbdf6f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 20:50:31 +0200 Subject: [PATCH 232/653] Update common.cc add meb travel assist --- can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/can/common.cc b/can/common.cc index 2ffdfd1dff3..f1362693454 100644 --- a/can/common.cc +++ b/can/common.cc @@ -230,6 +230,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const // address, and additionally (for SOME addresses) by the message counter. uint8_t counter = d[1] & 0x0F; switch (address) { + case 0x26B: // MEB_TRAVEL_ASSIST_01 + crc ^= (uint8_t[]){0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}[counter]; + break; case 0x14C: // MEB_ESP_03 crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; break; From 4893abf171d10e8a16a28cb210496d229baec932 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 20:55:01 +0200 Subject: [PATCH 233/653] Update vw_meb.dbc --- vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 3bdb3d98293..814e160087e 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1651,8 +1651,8 @@ BO_ 1004 MEB_TSK_01: 8 XXX SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX BO_ 619 MEB_Travel_Assist_01: 8 XXX - SG_ CHK : 0|8@1+ (1,0) [0|255] "" XXX - SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Travel_Assist_Status : 13|3@1+ (1,0) [0|3] "" XXX SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX SG_ Travel_Assist_Available : 23|1@1+ (1,0) [0|1] "" XXX From 0f44fc6c1800ec514365f66d5841db21c62d69b8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 21:10:56 +0200 Subject: [PATCH 234/653] Update vw_meb.dbc this is a type of greyish brigtness --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 814e160087e..339f62651df 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1608,7 +1608,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Driving_Type : 269|4@1+ (1,0) [0|7] "" XXX + SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX SG_ Lead_Distance : 290|10@1+ (0.1,0) [0|7] "Unit_Meter" XXX From be959589db7527035693efa0989d7308ec42fa77 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 22:13:10 +0200 Subject: [PATCH 235/653] Update vw_meb.dbc --- vw_meb.dbc | 1 - 1 file changed, 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 339f62651df..315945aa98f 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1488,7 +1488,6 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX - SG_ AEB_Active : 56|2@1+ (1,0) [0|3] "" XXX SG_ Brake_Pressure : 76|11@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX From 52c53c59f0e1cd3332dd8bc375b587be33d31d9f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 24 Jul 2024 22:59:08 +0200 Subject: [PATCH 236/653] Update vw_meb.dbc fix long dist same lane 01 measured at about 50 m and shifted regarding physical zero distance --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 315945aa98f..5a9cf1034d3 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1548,7 +1548,7 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.04,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.09,-5) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KiloMeter_per_Hour" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX From 247a15520cc9a884543f9458459be7dfa1c4295c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 26 Jul 2024 08:52:30 +0200 Subject: [PATCH 237/653] Update vw_meb.dbc prepare steering command for curvature tests --- vw_meb.dbc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 5a9cf1034d3..4b2c073be79 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1508,9 +1508,9 @@ BO_ 317 MEB_EPS_01: 32 XXX BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX - SG_ Active : 14|1@1+ (1,0) [0|3] "" XXX - SG_ Torque_Wind_Down : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX + SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX + SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX + SG_ Curvature : 24|15@1+ (0.00001526,0) [0|0.5] "Unit_Meter-1" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From 854540c84467c86338a73a0b599c0ba8af1e5a2b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:02:01 +0200 Subject: [PATCH 238/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 4b2c073be79..447feb20eac 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1494,7 +1494,7 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX - SG_ Yaw_Rate : 200|16@1+ (0.01,-327.68) [0|255] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.007,-229.35) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 4ec186eb6d9ae29257208d044cc010e99b066a49 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 26 Jul 2024 15:34:11 +0200 Subject: [PATCH 239/653] Update vw_meb.dbc guestimate curvature max of 0.1m^-1 -> 0.05 signed --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 447feb20eac..076a9efeba0 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (0.00001526,0) [0|0.5] "Unit_Meter-1" XXX + SG_ Curvature : 24|15@1+ (3e-06,0) [0|0.1] "Unit_1/m" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From e9df74ace8f44bcbf5be2b7b75f6de21f7cc2ade Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 26 Jul 2024 16:17:53 +0200 Subject: [PATCH 240/653] Update vw_meb.dbc use a little bit less than possible cupra born turning cycle as estimate for now, maximum curvature of signal should be around 0.2 1/m, so 0,1 signed --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 076a9efeba0..1e2da742d5b 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (3e-06,0) [0|0.1] "Unit_1/m" XXX + SG_ Curvature : 24|15@1+ (5.8e-06,0) [0|0.2] "Unit_1/m" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From 962b5f8c6efefb4296b450d84f8adfa8db6b1b5e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 27 Jul 2024 11:50:17 +0200 Subject: [PATCH 241/653] Update vw_meb.dbc factor for 0.2 curvature --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 1e2da742d5b..dcd330ada0d 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (5.8e-06,0) [0|0.2] "Unit_1/m" XXX + SG_ Curvature : 24|15@1+ (6.1e-06,0) [0|0.2] "Unit_1/m" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From cc50900f91c3d7d12720419ec58ef12fc77bded5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 29 Jul 2024 16:48:15 +0200 Subject: [PATCH 242/653] Update vw_meb.dbc change offset a little bit for yaw rate --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index dcd330ada0d..20a63d02524 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1494,7 +1494,7 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX - SG_ Yaw_Rate : 200|16@1+ (0.007,-229.35) [0|255] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.007,-229.36) [0|255] "" XXX BO_ 317 MEB_EPS_01: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From cc003238af233f54689a63a208ca23da1846a13c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 29 Jul 2024 20:08:44 +0200 Subject: [PATCH 243/653] Update vw_meb.dbc change curv to 1/mm --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 20a63d02524..93ea0c18066 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (6.1e-06,0) [0|0.2] "Unit_1/m" XXX + SG_ Curvature : 24|15@1+ (0.0061,0) [0|200] "Unit_1/mm" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From 32788e3bdcd20efa951c45ceb39318d55c549a3f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 29 Jul 2024 20:16:45 +0200 Subject: [PATCH 244/653] Update vw_meb.dbc change curv to a "round" value from here --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 93ea0c18066..d83383def20 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (0.0061,0) [0|200] "Unit_1/mm" XXX + SG_ Curvature : 24|15@1+ (0.00625,0) [0|200] "Unit_1/mm" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From 2668f428b591e4e14ed55b9f639b52332b380009 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 29 Jul 2024 21:04:19 +0200 Subject: [PATCH 245/653] Update vw_meb.dbc --- vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index d83383def20..56447d5cbf8 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1510,7 +1510,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Curvature : 24|15@1+ (0.00625,0) [0|200] "Unit_1/mm" XXX + SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX From e28e129d64f1c81d3961c2d128bb4f41a755fd0a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 31 Jul 2024 19:03:09 +0200 Subject: [PATCH 246/653] Update vw_meb.dbc --- vw_meb.dbc | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/vw_meb.dbc b/vw_meb.dbc index 56447d5cbf8..b0b4c847665 100644 --- a/vw_meb.dbc +++ b/vw_meb.dbc @@ -1548,20 +1548,24 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.09,-5) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-10) [0|4294967295] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KiloMeter_per_Hour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (3.2e-05,0) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-10) [0|4294967295] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Long_Distance : 118|22@1+ (3.2e-05,0) [0|1023] "Unit_Meter" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-10) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Same_Lane_02_Long_Distance : 150|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Left_Lane_02_Long_Distance : 182|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Long_Distance : 214|22@1+ (3.2e-05,0) [0|4095] "Unit_Meter" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ NEW_SIGNAL_2 : 246|10@1+ (1,-500) [0|1023] "" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ NEW_SIGNAL_4 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ NEW_SIGNAL_1 : 270|6@1+ (1,0) [0|127] "" XXX From 92f79a2a53bd2bc02e7074288077c5f44d5ddbe8 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Thu, 1 Aug 2024 21:36:08 +0200 Subject: [PATCH 247/653] move my dbc --- vw_meb.dbc => opendbc/dbc/vw_meb.dbc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename vw_meb.dbc => opendbc/dbc/vw_meb.dbc (100%) diff --git a/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc similarity index 100% rename from vw_meb.dbc rename to opendbc/dbc/vw_meb.dbc From 4a7609da1fc8a3b3eec043fa9cc297653302f8c5 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Fri, 23 Aug 2024 16:15:51 +0200 Subject: [PATCH 248/653] implement car specific coding after restructuring --- opendbc/car/volkswagen/carcontroller.py | 200 ++++++++++++++----- opendbc/car/volkswagen/carstate.py | 167 ++++++++++++++++ opendbc/car/volkswagen/fingerprints.py | 14 ++ opendbc/car/volkswagen/interface.py | 38 +++- opendbc/car/volkswagen/mebcan.py | 226 ++++++++++++++++++++++ opendbc/car/volkswagen/radar_interface.py | 100 +++++++++- opendbc/car/volkswagen/values.py | 73 ++++++- 7 files changed, 767 insertions(+), 51 deletions(-) create mode 100644 opendbc/car/volkswagen/mebcan.py diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 8f42ca35be6..468666d692a 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -1,29 +1,50 @@ import copy from opendbc.can.packer import CANPacker -from opendbc.car import DT_CTRL, apply_driver_steer_torque_limits, structs +from opendbc.car import DT_CTRL, apply_driver_steer_torque_limits, apply_std_steer_angle_limits, structs from opendbc.car.common.conversions import Conversions as CV -from opendbc.car.common.numpy_fast import clip +from opendbc.car.common.numpy_fast import clip, interp from opendbc.car.interfaces import CarControllerBase -from opendbc.car.volkswagen import mqbcan, pqcan +from opendbc.car.volkswagen import mqbcan, pqcan, mebcan from opendbc.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags +#from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import get_T_FOLLOW VisualAlert = structs.CarControl.HUDControl.VisualAlert LongCtrlState = structs.CarControl.Actuators.LongControlState +#def apply_meb_curvature_limits(apply_curvature, apply_curvature_last, current_curvature, v_ego_raw, CCP): +# if v_ego_raw > 1: # we don't enforce checks for this in panda at the moment, but keep it near measured current curv to project user input +# apply_curvature = clip(apply_curvature, current_curvature - CCP.CURVATURE_ERROR, current_curvature + CCP.CURVATURE_ERROR) +# apply_curvature = apply_std_steer_angle_limits(apply_curvature, apply_curvature_last, v_ego_raw, CCP) +# +# return clip(apply_curvature, -CCP.CURVATURE_MAX, CCP.CURVATURE_MAX) + class CarController(CarControllerBase): def __init__(self, dbc_name, CP): super().__init__(dbc_name, CP) self.CCP = CarControllerParams(CP) - self.CCS = pqcan if CP.flags & VolkswagenFlags.PQ else mqbcan + + if CP.flags & VolkswagenFlags.PQ: + self.CCS = pqcan + elif CP.flags & VolkswagenFlags.MEB: + self.CCS = mebcan + else: + self.CCS = mqbcan + self.packer_pt = CANPacker(dbc_name) self.ext_bus = CANBUS.pt if CP.networkLocation == structs.CarParams.NetworkLocation.fwdCamera else CANBUS.cam self.apply_steer_last = 0 + #self.apply_curvature_last = 0 + self.apply_angle_last = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 + self.lat_active_prev = False + self.steering_power = 0 + self.long_heartbeat = 0 + self.long_active_prev = False def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -33,37 +54,93 @@ def update(self, CC, CS, now_nanos): # **** Steering Controls ************************************************ # if self.frame % self.CCP.STEER_STEP == 0: - # Logic to avoid HCA state 4 "refused": - # * Don't steer unless HCA is in state 3 "ready" or 5 "active" - # * Don't steer at standstill - # * Don't send > 3.00 Newton-meters torque - # * Don't send the same torque for > 6 seconds - # * Don't send uninterrupted steering for > 360 seconds - # MQB racks reset the uninterrupted steering timer after a single frame - # of HCA disabled; this is done whenever output happens to be zero. - - if CC.latActive: - new_steer = int(round(actuators.steer * self.CCP.STEER_MAX)) - apply_steer = apply_driver_steer_torque_limits(new_steer, self.apply_steer_last, CS.out.steeringTorque, self.CCP) - self.hca_frame_timer_running += self.CCP.STEER_STEP - if self.apply_steer_last == apply_steer: - self.hca_frame_same_torque += self.CCP.STEER_STEP - if self.hca_frame_same_torque > self.CCP.STEER_TIME_STUCK_TORQUE / DT_CTRL: - apply_steer -= (1, -1)[apply_steer < 0] - self.hca_frame_same_torque = 0 + if self.CP.flags & VolkswagenFlags.MEB: + # Logic to avoid HCA refused state + # * steering power as counter near zero before standstill OP lane assist deactivation + # MEB rack can be used continously without found time limits yet + # Steering power counter is used to: + # * prevent sudden fluctuations at low speeds + # * avoid HCA refused + # * easy user intervention + # * keep it near maximum regarding speed to get full steering power in shortest time + + if CC.latActive: + hca_enabled = True + self.lat_active_prev = True + #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) # TODO verify sign (clockwise is negative) + #apply_curvature = apply_meb_curvature_limits(actuators.curvature, self.apply_curvature_last, current_curvature, CS.out.vEgoRaw, self.CCP) + apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.CCP) + if CS.out.steeringPressed: # adapt OP angle to user input when user intervention, verify: car allows higher angle change independently from power for higher differences + apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) + + # steering power as lazy counter + steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) + steering_angle_diff = abs(apply_angle - CS.out.steeringAngleDeg) + steering_power_target_angle = steering_power_min_by_speed + self.CCP.ANGLE_POWER_FACTOR * steering_angle_diff + abs(apply_angle) + steering_power_target = clip(steering_power_target_angle, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) + + if self.steering_power < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated + self.steering_power = min(self.steering_power + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + + elif CS.out.steeringPressed and self.steering_power > self.CCP.STEERING_POWER_USER: # user action results in decreasing the steering power + self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_USER) + + elif self.steering_power < self.CCP.STEERING_POWER_MAX: # following desired target + if self.steering_power < steering_power_target: + self.steering_power = min(self.steering_power + self.CCP.STEERING_POWER_STEPS, steering_power_target) + elif self.steering_power > steering_power_target: + self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, steering_power_target) + else: - self.hca_frame_same_torque = 0 - hca_enabled = abs(apply_steer) > 0 + if self.lat_active_prev and self.steering_power > 0: # monotonously decrement power to zero before disabling lane assist to prevent EPS fault + hca_enabled = True + #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + #apply_curvature = current_curvature + apply_angle = CS.out.steeringAngleDeg + self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, 0) + else: + hca_enabled = False + self.lat_active_prev = False + self.steering_power = 0 + #apply_curvature = 0. + apply_angle = 0 + + #self.apply_curvature_last = apply_curvature + self.apply_angle_last = clip(apply_angle, -self.CCP.ANGLE_MAX, self.CCP.ANGLE_MAX) + can_sends.append(self.CCS.create_steering_control_curvature(self.packer_pt, CANBUS.pt, apply_angle, hca_enabled, self.steering_power)) + else: - hca_enabled = False - apply_steer = 0 + # Logic to avoid HCA state 4 "refused": + # * Don't steer unless HCA is in state 3 "ready" or 5 "active" + # * Don't steer at standstill + # * Don't send > 3.00 Newton-meters torque + # * Don't send the same torque for > 6 seconds + # * Don't send uninterrupted steering for > 360 seconds + # MQB racks reset the uninterrupted steering timer after a single frame + # of HCA disabled; this is done whenever output happens to be zero. + + if CC.latActive: + new_steer = int(round(actuators.steer * self.CCP.STEER_MAX)) + apply_steer = apply_driver_steer_torque_limits(new_steer, self.apply_steer_last, CS.out.steeringTorque, self.CCP) + self.hca_frame_timer_running += self.CCP.STEER_STEP + if self.apply_steer_last == apply_steer: + self.hca_frame_same_torque += self.CCP.STEER_STEP + if self.hca_frame_same_torque > self.CCP.STEER_TIME_STUCK_TORQUE / DT_CTRL: + apply_steer -= (1, -1)[apply_steer < 0] + self.hca_frame_same_torque = 0 + else: + self.hca_frame_same_torque = 0 + hca_enabled = abs(apply_steer) > 0 + else: + hca_enabled = False + apply_steer = 0 - if not hca_enabled: - self.hca_frame_timer_running = 0 + if not hca_enabled: + self.hca_frame_timer_running = 0 - self.eps_timer_soft_disable_alert = self.hca_frame_timer_running > self.CCP.STEER_TIME_ALERT / DT_CTRL - self.apply_steer_last = apply_steer - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_steer, hca_enabled)) + self.eps_timer_soft_disable_alert = self.hca_frame_timer_running > self.CCP.STEER_TIME_ALERT / DT_CTRL + self.apply_steer_last = apply_steer + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_steer, hca_enabled)) if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque @@ -77,31 +154,62 @@ def update(self, CC, CS, now_nanos): # **** Acceleration Controls ******************************************** # if self.frame % self.CCP.ACC_CONTROL_STEP == 0 and self.CP.openpilotLongitudinalControl: - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, - acc_control, stopping, starting, CS.esp_hold_confirmation)) + + if self.CP.flags & VolkswagenFlags.MEB: + just_disabled = True if self.long_active_prev and not CC.longActive else False + self.long_active_prev = CC.longActive + current_speed = CS.out.vEgo * CV.MS_TO_KPH + reversing = CS.out.gearShifter in [car.CarState.GearShifter.reverse] + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled) + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled, starting, + stopping, CS.esp_hold_confirmation) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, + acc_hold_type, stopping, starting, CS.esp_hold_confirmation, + current_speed, reversing, CS.meb_acc_02_values)) + + else: + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, + acc_control, stopping, starting, CS.esp_hold_confirmation)) # **** HUD Controls ***************************************************** # if self.frame % self.CCP.LDW_STEP == 0: hud_alert = 0 + sound_alert = 0 if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): - hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] + hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] + sound_alert = 1 can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control)) + CS.out.steeringPressed, hud_alert, hud_control, sound_alert)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: - lead_distance = 0 - if hud_control.leadVisible and self.frame * DT_CTRL > 1.0: # Don't display lead until we know the scaling factor - lead_distance = 512 if CS.upscale_lead_car_signal else 8 - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) - # FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem? - set_speed = hud_control.setSpeed * CV.MS_TO_KPH - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, set_speed, - lead_distance, hud_control.leadDistanceBars)) + if self.CP.flags & VolkswagenFlags.MEB: + if self.long_heartbeat != 221: + self.long_heartbeat = 221 + elif self.long_heartbeat == 221: + self.long_heartbeat = 360 + + set_speed = hud_control.setSpeed * CV.MS_TO_KPH + gap = CS.out.vEgo * 1 #* get_T_FOLLOW(hud_control.leadDistanceBars - 1) * 2 + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, + gap, hud_control.leadVisible, + hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, + CS.meb_acc_01_values, CS.distance_stock_values)) + + else: + lead_distance = 0 + if hud_control.leadVisible and self.frame * DT_CTRL > 1.0: # Don't display lead until we know the scaling factor + lead_distance = 512 if CS.upscale_lead_car_signal else 8 + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) + # FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem? + set_speed = hud_control.setSpeed * CV.MS_TO_KPH + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, set_speed, + lead_distance, hud_control.leadDistanceBars)) # **** Stock ACC Button Controls **************************************** # @@ -110,9 +218,11 @@ def update(self, CC, CS, now_nanos): can_sends.append(self.CCS.create_acc_buttons_control(self.packer_pt, self.ext_bus, CS.gra_stock_values, cancel=CC.cruiseControl.cancel, resume=CC.cruiseControl.resume)) - new_actuators = copy.copy(actuators) + new_actuators = actuators.as_builder() new_actuators.steer = self.apply_steer_last / self.CCP.STEER_MAX new_actuators.steerOutputCan = self.apply_steer_last + #new_actuators.curvature = self.apply_curvature_last + new_actuators.steeringAngleDeg = self.apply_angle_last self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index b98f4ae06cc..e80d17b7348 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -38,6 +38,8 @@ def update(self, pt_cp, cam_cp, *_) -> structs.CarState: if self.CP.flags & VolkswagenFlags.PQ: return self.update_pq(pt_cp, cam_cp, ext_cp) + elif self.CP.flags & VolkswagenFlags.MEB: + return self.update_meb(pt_cp, cam_cp, ext_cp) ret = structs.CarState() # Update vehicle speed and acceleration from ABS wheel speeds. @@ -256,6 +258,130 @@ def update_pq(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.frame += 1 return ret + + def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: + ret = structs.CarState() + # Update vehicle speed and acceleration from ABS wheel speeds. + ret.wheelSpeeds = self.get_wheel_speeds( + pt_cp.vl["MEB_ESP_01"]["VL_Radgeschw"], + pt_cp.vl["MEB_ESP_01"]["VR_Radgeschw"], + pt_cp.vl["MEB_ESP_01"]["HL_Radgeschw"], + pt_cp.vl["MEB_ESP_01"]["HR_Radgeschw"], + ) + + ret.vEgoRaw = float(np.mean([ret.wheelSpeeds.fl, ret.wheelSpeeds.fr, ret.wheelSpeeds.rl, ret.wheelSpeeds.rr])) + ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) + ret.standstill = ret.vEgoRaw == 0 + + # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. + ret.steeringAngleDeg = pt_cp.vl["MEB_EPS_01"]["Steering_Angle"] * (1, -1)[int(pt_cp.vl["MEB_EPS_01"]["Steering_Angle_VZ"])] + ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] + ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] + ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE + ret.yawRate = pt_cp.vl["MEB_ABS_01"]["Yaw_Rate"] * CV.DEG_TO_RAD + hca_status = self.CCP.hca_status_values.get(pt_cp.vl["MEB_EPS_01"]["LatCon_HCA_Status"]) + ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) + + # VW Emergency Assist status tracking and mitigation + self.eps_stock_values = pt_cp.vl["LH_EPS_03"] + #ret.carFaultedNonCritical = + + # Update gas, brakes, and gearshift. + # accel pressure on meb eps 03 has a really low frequency + ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 + ret.gas = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] * 0.392 # signal width in percent + ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) + ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent + #ret.regenBraking = find signal + #ret.parkingBrake = find signal + + # Update gear and/or clutch position data. + ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) + + # Update door and trunk/hatch lid open status. + ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], + pt_cp.vl["ZV_02"]["ZV_BT_offen"], + pt_cp.vl["ZV_02"]["ZV_HFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) + + # Update seatbelt fastened status. + ret.seatbeltUnlatched = pt_cp.vl["Airbag_02"]["AB_Gurtschloss_FA"] != 3 + + self.distance_stock_values = ext_cp.vl["MEB_Distance_01"] + + # Consume blind-spot monitoring info/warning LED states, if available. + # Infostufe: BSM LED on, Warnung: BSM LED flashing + if self.CP.enableBsm: + ret.leftBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Left"] > 0 + ret.rightBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Right"] > 0 + + # detect an object beside the car with radar and keep minimum of 4 meter + front_dist_min = 4 + + # left side + if self.distance_stock_values['Left_Lane_01_Detection'] > 0 and self.distance_stock_values['Left_Lane_01_Long_Distance'] < front_dist_min: + ret.leftBlindspot = True + if self.distance_stock_values['Left_Lane_02_Detection'] > 0 and self.distance_stock_values['Left_Lane_02_Long_Distance'] < front_dist_min: + ret.leftBlindspot = True + + # right side + if self.distance_stock_values['Right_Lane_01_Detection'] > 0 and self.distance_stock_values['Right_Lane_01_Long_Distance'] < front_dist_min: + ret.rightBlindspot = True + if self.distance_stock_values['Right_Lane_02_Detection'] > 0 and self.distance_stock_values['Right_Lane_02_Long_Distance'] < front_dist_min: + ret.rightBlindspot = True + + # Consume factory LDW data relevant for factory SWA (Lane Change Assist) + # and capture it for forwarding to the blind spot radar controller + self.ldw_stock_values = cam_cp.vl["LDW_02"] + self.meb_acc_01_values = ext_cp.vl["MEB_ACC_01"] + self.meb_acc_02_values = ext_cp.vl["MEB_ACC_02"] + + ret.stockFcw = False # find signal + ret.stockAeb = False # find signal + + self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] + + ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) + ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) + + if self.CP.pcmCruise: + # Cruise Control mode; check for distance UI setting from the radar. + # ECM does not manage this, so do not need to check for openpilot longitudinal + ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) + else: + # Speed limiter mode; ECM faults if we command ACC while not pcmCruise + ret.cruiseState.nonAdaptive = False # TODO + + ret.accFaulted = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (6, 7) + + self.esp_hold_confirmation = bool(pt_cp.vl["MEB_ESP_05"]["ESP_Hold"]) + ret.cruiseState.standstill = self.CP.pcmCruise and self.esp_hold_confirmation + + # Update ACC setpoint. When the setpoint is zero or there's an error, the + # radar sends a set-speed of ~90.69 m/s / 203mph. + if self.CP.pcmCruise: + ret.cruiseState.speed = int(round(ext_cp.vl["MEB_ACC_01"]["ACC_Wunschgeschw_02"])) * CV.KPH_TO_MS + if ret.cruiseState.speed > 50: # settable maximum 180km/h + ret.cruiseState.speed = 0 + + self.distance_stock_values = ext_cp.vl["MEB_Distance_01"] + + # Update button states for turn signals and ACC controls, capture all ACC button state/config for passthrough + ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_links"]) + ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_rechts"]) + ret.buttonEvents = self.create_button_events(pt_cp, self.CCP.BUTTONS) + self.gra_stock_values = pt_cp.vl["GRA_ACC_01"] + + # Additional safety checks performed in CarInterface. + ret.espDisabled = bool(pt_cp.vl["ESP_24"]["ESP_Off_Lampe"]) # use esp_21 systemstatus? verify + ret.espActive = bool(pt_cp.vl["ESP_21"]["ESP_Eingriff"]) + + # EV battery charge WattHours + #ret.fuelGauge = pt_cp.vl["HVEM_02"]["HVEM_Nutzbare_Energie"] + + self.frame += 1 + return ret def update_hca_state(self, hca_status): # Treat INITIALIZING and FAULT as temporary for worst likely EPS recovery time, for cars without factory Lane Assist @@ -269,6 +395,8 @@ def update_hca_state(self, hca_status): def get_can_parser(CP): if CP.flags & VolkswagenFlags.PQ: return CarState.get_can_parser_pq(CP) + elif CP.flags & VolkswagenFlags.MEB: + return CarState.get_can_parser_meb(CP) messages = [ # sig_address, frequency @@ -306,6 +434,8 @@ def get_can_parser(CP): def get_cam_can_parser(CP): if CP.flags & VolkswagenFlags.PQ: return CarState.get_cam_can_parser_pq(CP) + elif CP.flags & VolkswagenFlags.MEB: + return CarState.get_cam_can_parser_meb(CP) messages = [] @@ -377,6 +507,43 @@ def get_cam_can_parser_pq(CP): messages += PqExtraSignals.bsm_radar_messages return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) + + @staticmethod + def get_can_parser_meb(CP): + messages = [ + # sig_address, frequency + ("LWI_01", 100), # From J500 Steering Assist with integrated sensors + ("GRA_ACC_01", 33), # From J533 CAN gateway (via LIN from steering wheel controls) + ("Airbag_02", 5), # From J234 Airbag control module + ("Motor_14", 10), # From J623 Engine control module + ("Blinkmodi_02", 2), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) + ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors + ("Getriebe_11", 100), # From J743 Auto transmission control module + ("ZV_02", 5), # From ZV + ("MEB_EPS_01", 100), # + ("ESP_21", 50), # + ("ESP_24", 20), # + ("MEB_ABS_01", 50), # + ("MEB_ESP_01", 100), # + ("MEB_ESP_03", 10), # + ("MEB_ESP_05", 50), # + ("MEB_Light_01", 5), # + ("MEB_Motor_01", 50), # + #("HVEM_02", 10), # + ] + return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.pt) + + @staticmethod + def get_cam_can_parser_meb(CP): + messages = [ + # sig_address, frequency + ("LDW_02", 10), # From R242 Driver assistance camera + ("MEB_ACC_01", 17), # + ("MEB_ACC_02", 50), # + ("MEB_Drive_State_01", 20), # + ("MEB_Distance_01", 25), # + ] + return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) class MqbExtraSignals: diff --git a/opendbc/car/volkswagen/fingerprints.py b/opendbc/car/volkswagen/fingerprints.py index 83756830a64..1848dec18e0 100644 --- a/opendbc/car/volkswagen/fingerprints.py +++ b/opendbc/car/volkswagen/fingerprints.py @@ -942,6 +942,20 @@ b'\xf1\x875Q0907572R \xf1\x890771', ], }, + CAR.CUPRA_BORN_MK1: { + (Ecu.engine, 0x7e0, None): [ + b'\xf1\x870EA906012EC\xf1\x892855', + ], + (Ecu.srs, 0x715, None): [ + b'\xf1\x871EA959655EH\xf1\x890381', + ], + (Ecu.eps, 0x712, None): [ + b'\xf1\x871EA907144AQ\xf1\x895033', + ], + (Ecu.fwdRadar, 0x757, None): [ + b'\xf1\x871EA907572H \xf1\x890234', + ], + }, CAR.SKODA_FABIA_MK4: { (Ecu.engine, 0x7e0, None): [ b'\xf1\x8705E906018CF\xf1\x891905', diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 2361062fa50..d9f85a13540 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -32,6 +32,21 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # https://blog.willemmelching.nl/carhacking/2022/01/02/vw-part1/ # Panda ALLOW_DEBUG firmware required. ret.dashcamOnly = True + + elif ret.flags & VolkswagenFlags.MEB: # TODO + # Set global MEB parameters + ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] + ret.enableBsm = True + ret.transmissionType = TransmissionType.direct + ret.networkLocation = NetworkLocation.fwdCamera # TODO signal sources: I am connected at gateway/ICAS 1 right now + #ret.steerControlType = car.CarParams.SteerControlType.angle + ret.radarUnavailable = False + #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value + + if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, MEB_EPS_01 + ret.networkLocation = NetworkLocation.gateway + else: + ret.networkLocation = NetworkLocation.fwdCamera else: # Set global MQB parameters @@ -55,11 +70,15 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global lateral tuning defaults, can be overridden per-vehicle - ret.steerLimitTimer = 0.4 if ret.flags & VolkswagenFlags.PQ: + ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) + elif ret.flags & VolkswagenFlags.MEB: + ret.steerLimitTimer = 0.8 + ret.steerActuatorDelay = 0.3 else: + ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] ret.lateralTuning.pid.kiBP = [0.] @@ -69,19 +88,30 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle + if ret.flags & VolkswagenFlags.MEB: + ret.longitudinalActuatorDelay = 0.5 + #ret.longitudinalTuning.deadzoneBP = [0., 8.05] + #ret.longitudinalTuning.deadzoneV = [.0, .14] + ret.longitudinalTuning.kpBP = [0., 5., 20.] + ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] + ret.longitudinalTuning.kiBP = [0., 5., 20.] + ret.longitudinalTuning.kiV = [0., 0., -0.13] + #if params.get_bool('ExperimentalMode'): + # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth + ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: - # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. + # Proof-of-concept, prep for E2E only. No radar points available for non MEB. Panda ALLOW_DEBUG firmware required. ret.openpilotLongitudinalControl = True ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL if ret.transmissionType == TransmissionType.manual: ret.minEnableSpeed = 4.5 + ret.vEgoStarting = 0.1 + ret.vEgoStopping = 0.5 ret.pcmCruise = not ret.openpilotLongitudinalControl ret.stoppingControl = True ret.stopAccel = -0.55 - ret.vEgoStarting = 0.1 - ret.vEgoStopping = 0.5 ret.autoResumeSng = ret.minEnableSpeed == -1 return ret diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py new file mode 100644 index 00000000000..c4600cfe560 --- /dev/null +++ b/opendbc/car/volkswagen/mebcan.py @@ -0,0 +1,226 @@ +from openpilot.selfdrive.car.common.numpy_fast import clip + +def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): + values = { + #"Curvature": abs(apply_curvature) * 1000, # in 1/mm + "Steering_Angle": abs(apply_curvature), + "VZ": 1 if apply_curvature < 0 and lkas_enabled == 1 else 0, # > for curvature + "Power": power if lkas_enabled else 0, + "Active": lkas_enabled, + "Active_02": lkas_enabled, + "Inactive": not lkas_enabled, + } + return packer.make_can_msg("HCA_03", bus, values) + + +def create_steering_control(packer, bus, apply_steer, lkas_enabled): + values = { + "HCA_01_LM_Offset": abs(apply_steer), + "HCA_01_Request": lkas_enabled, + "HCA_01_LM_OffSign": 1 if apply_steer < 0 and lkas_enabled == 1 else 0, + "HCA_01_Enable": lkas_enabled, + "HCA_01_Standby": not lkas_enabled, + "HCA_01_Available": 1, + } + return packer.make_can_msg("HCA_01", bus, values) + + +def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): + display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active + + values = {} + if len(ldw_stock_values): + values = {s: ldw_stock_values[s] for s in [ + "LDW_SW_Warnung_links", # Blind spot in warning mode on left side due to lane departure + "LDW_SW_Warnung_rechts", # Blind spot in warning mode on right side due to lane departure + "LDW_Seite_DLCTLC", # Direction of most likely lane departure (left or right) + "LDW_DLC", # Lane departure, distance to line crossing + "LDW_TLC", # Lane departure, time to line crossing + ]} + + values.update({ + "LDW_Gong": sound_alert, + "LDW_Status_LED_gelb": 1 if lat_active and steering_pressed else 0, + "LDW_Status_LED_gruen": 1 if lat_active and not steering_pressed else 0, + "LDW_Lernmodus_links": 3 + display_mode if hud_control.leftLaneDepart else 1 + hud_control.leftLaneVisible + display_mode, + "LDW_Lernmodus_rechts": 3 + display_mode if hud_control.rightLaneDepart else 1 + hud_control.rightLaneVisible + display_mode, + "LDW_Texte": hud_alert, + }) + return packer.make_can_msg("LDW_02", bus, values) + + +def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resume=False): + values = {s: gra_stock_values[s] for s in [ + "GRA_Hauptschalter", # ACC button, on/off + "GRA_Typ_Hauptschalter", # ACC main button type + "GRA_Codierung", # ACC button configuration/coding + "GRA_Tip_Stufe_2", # unknown related to stalk type + "GRA_ButtonTypeInfo", # unknown related to stalk type + ]} + + values.update({ + "COUNTER": (gra_stock_values["COUNTER"] + 1) % 16, + "GRA_Abbrechen": cancel, + "GRA_Tip_Wiederaufnahme": resume, + }) + return packer.make_can_msg("GRA_ACC_01", bus, values) + + +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled): + if acc_faulted: + acc_control = 6 + elif just_disabled: + acc_control = 5 + elif long_active: + acc_control = 3 + elif main_switch_on: + acc_control = 2 + else: + acc_control = 0 + + return acc_control + + +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold): + if acc_faulted or not main_switch_on: + acc_hold_type = 0 + elif just_disabled: # prevent errors + acc_hold_type = 5 # disable acc confirmation + elif starting: + acc_hold_type = 4 # hold release and startup + elif stopping: + acc_hold_type = 1 # hold or hold request + elif esp_hold and long_active: + acc_hold_type = 1 # hold + else: + acc_hold_type = 0 + + return acc_hold_type + + +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, esp_hold, speed, reversing, meb_acc_02_values): + commands = [] + + values = { + "ACC_Typ": acc_type, + "ACC_Status_ACC": acc_control, + "ACC_StartStopp_Info": acc_enabled, + "ACC_Sollbeschleunigung_02": accel if acc_enabled else 3.01, + "ACC_zul_Regelabw_unten": 0.2, # TODO: dynamic adjustment of comfort-band + "ACC_zul_Regelabw_oben": 0.2, # TODO: dynamic adjustment of comfort-band + "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits + "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits + "ACC_Anfahren": starting, + "ACC_Anhalten": stopping, + "ACC_Anhalteweg": 20.46, + "ACC_Anforderung_HMS": acc_hold_type, + "ACC_AKTIV_regelt": 1 if acc_control == 3 else 0, + "Speed": speed, # dont know if neccessary + "Reversing": reversing, # dont know if neccessary + } + + values.update({ + "SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], + "SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], + "SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], + "SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], + "SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], + "SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], + }) + + commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) + + # satisfy car to prevent errors when pressing Travel Assist Button + # the button does nothing with this + values_ta = { + "Travel_Assist_Status" : 2, # ready + "Travel_Assist_Request" : 0, # no request + "Travel_Assist_Available" : 1, + } + + commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) + + return commands + + +def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): + if acc_faulted: + acc_hud_control = 6 + elif long_active: + acc_hud_control = 4 if override else 3 + elif main_switch_on: + acc_hud_control = 2 + else: + acc_hud_control = 0 + + return acc_hud_control + + +def create_acc_hud_control(packer, bus, acc_control, set_speed, gap, lead_visible, distance, heartbeat, esp_hold, meb_acc_01_values, distance_stock_values): + zeitluecke_1 = 0 + zeitluecke_2 = 0 + zeitluecke_3 = 0 + zeitluecke_4 = 0 + zeitluecke_5 = 0 + + if distance == 1: + zeitluecke_1 = gap + elif distance == 2: + zeitluecke_2 = gap + elif distance == 3: + zeitluecke_3 = gap + elif distance == 4: + zeitluecke_4 = gap + elif distance == 5: + zeitluecke_5 = gap + + # scale lead dist in meter 200 -> 100 + # clip to prevent negative values because of radar signal shift + lead_dist = clip(distance_stock_values["Same_Lane_01_Long_Distance"] * 0.4, 0, 100) + + if lead_visible and distance_stock_values["Same_Lane_01_Detection"] == 0: + lead_dist = 50 + + values = { + #"STA_Primaeranz": acc_hud_status, + "ACC_Status_ACC": acc_control, + "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, + "ACC_Gesetzte_Zeitluecke": distance, + #"ACC_Anzeige_Zeitluecke": 1 if acc_control == 3 else 0, + "ACC_Display_Prio": 1, + "ACC_Abstandsindex_02": 512, + "ACC_EGO_Fahrzeug": 1 if acc_control == 3 else 0, + "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary + "Lead_Type_Detected": 1 if lead_visible > 0 else 0, # object should be displayed + "Lead_Type": 3 if lead_visible > 0 else 0, # displaying a car + "Lead_Distance": lead_dist if lead_visible > 0 else 0, # hud distance of object + "ACC_Enabled": 1 if acc_control == 3 else 0, + "ACC_Standby_Override": 1 if acc_control != 3 else 0, + "ACC_AKTIV_regelt": 1 if acc_control == 3 else 0, + "ACC_Limiter_Mode": 0, + "Lead_Brightness": 3 if acc_control == 3 else 0, # object shows in colour + "Unknown_03": 106, # prevents errors + "Unknown_01": 0, # prevents errors + "Unknown_08": 0, # prevents errors + "ACC_Special_Events": 3 if esp_hold and acc_control == 3 else 0, # acc ready message at standstill + "Zeitluecke_1_Signal": zeitluecke_1, + "Zeitluecke_2_Signal": zeitluecke_2, + "Zeitluecke_3_Signal": zeitluecke_3, + "Zeitluecke_4_Signal": zeitluecke_4, + "Zeitluecke_5_Signal": zeitluecke_5, + } + + values.update({ + #"STA_Primaeranz": meb_acc_01_values["STA_Primaeranz"], + "Unknown_Area_01": meb_acc_01_values["Unknown_Area_01"], + "SET_ME_0X1": meb_acc_01_values["SET_ME_0X1"], + "SET_ME_0X3FF": meb_acc_01_values["SET_ME_0X3FF"], + "SET_ME_0XFFFF": meb_acc_01_values["SET_ME_0XFFFF"], + "SET_ME_0X7FFF": meb_acc_01_values["SET_ME_0X7FFF"], + "Unknown_04": meb_acc_01_values["Unknown_04"], + "Unknown_05": meb_acc_01_values["Unknown_05"], + "Unknown_06": meb_acc_01_values["Unknown_06"], + "Unknown_07": meb_acc_01_values["Unknown_07"], + }) + + return packer.make_can_msg("MEB_ACC_01", bus, values) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 6e552bf618f..76773496912 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -1,4 +1,102 @@ +import math + +from opendbc.can.parser import CANParser +from opendbc.car import structs from opendbc.car.interfaces import RadarInterfaceBase +from opendbc.car.common.conversions import Conversions as CV +from opendbc.car.volkswagen.values import DBC, VolkswagenFlags + +RADAR_ADDR = 0x24F +RADAR_SAME_LANE_01 = 1 +RADAR_SAME_LANE_02 = 2 + +def get_radar_can_parser(CP): + if CP.flags & VolkswagenFlags.MEB: + messages = [("MEB_Distance_01", 25)] + else: + return None + + return CANParser(DBC[CP.carFingerprint]['radar'], messages, 2) + class RadarInterface(RadarInterfaceBase): - pass + def __init__(self, CP): + super().__init__(CP) + self.updated_messages = set() + self.trigger_msg = RADAR_ADDR + self.track_id = 0 + + self.radar_off_can = CP.radarUnavailable + self.rcp = get_radar_can_parser(CP) + + def update(self, can_strings): + if self.radar_off_can or (self.rcp is None): + return super().update(None) + + vls = self.rcp.update_strings(can_strings) + self.updated_messages.update(vls) + + if self.trigger_msg not in self.updated_messages: + return None + + rr = self._update(self.updated_messages) + self.updated_messages.clear() + + return rr + + def _update(self, updated_messages): + ret = car.RadarData.new_message() + if self.rcp is None: + return ret + + errors = [] + + if not self.rcp.can_valid: + errors.append("canError") + ret.errors = errors + + msg = self.rcp.vl["MEB_Distance_01"] + + # ---------------------------------- # + + signal_part = RADAR_SAME_LANE_01 + if signal_part not in self.pts: + self.pts[signal_part] = structs.RadarData.RadarPoint.new_message() + self.pts[signal_part].trackId = self.track_id + self.track_id += 1 + + valid = msg['Same_Lane_01_Detection'] > 0 + if valid: + self.pts[signal_part].measured = True + self.pts[signal_part].dRel = max(msg['Same_Lane_01_Long_Distance'], 0) #because of a little bit of shifting negative values possible + self.pts[signal_part].yRel = -msg['Same_Lane_01_Lat_Distance'] # left is positive + self.pts[signal_part].vRel = msg['Same_Lane_01_Rel_Velo'] * CV.KPH_TO_MS + self.pts[signal_part].aRel = float('nan') + self.pts[signal_part].yvRel = float('nan') + else: + del self.pts[signal_part] + + # ---------------------------------- # + + signal_part = RADAR_SAME_LANE_02 + if signal_part not in self.pts: + self.pts[signal_part] = structs.RadarData.RadarPoint.new_message() + self.pts[signal_part].trackId = self.track_id + self.track_id += 1 + + valid = msg['Same_Lane_02_Detection'] > 0 + if valid: + self.pts[signal_part].measured = True + self.pts[signal_part].dRel = max(msg['Same_Lane_02_Long_Distance'], 0) + self.pts[signal_part].yRel = -msg['Same_Lane_02_Lat_Distance'] + self.pts[signal_part].vRel = msg['Same_Lane_02_Rel_Velo'] * CV.KPH_TO_MS + self.pts[signal_part].aRel = float('nan') + self.pts[signal_part].yvRel = float('nan') + else: + del self.pts[signal_part] + + # ---------------------------------- # + + ret.points = list(self.pts.values()) + return ret + diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index ca13f37ad2b..1e4d575f10d 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -4,7 +4,7 @@ from panda import uds from opendbc.can.can_define import CANDefine -from opendbc.car import dbc_dict, CarSpecs, DbcDict, PlatformConfig, Platforms +from opendbc.car import dbc_dict, CarSpecs, DbcDict, PlatformConfig, Platforms, AngleRateLimit from opendbc.car.common.conversions import Conversions as CV from opendbc.car import structs from opendbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \ @@ -70,6 +70,50 @@ def __init__(self, CP): "laneAssistTakeOver": 4, # "Lane Assist: Please Take Over Steering" "laneAssistDeactivTrailer": 5, # "Lane Assist: no function with trailer" } + + elif CP.flags & VolkswagenFlags.MEB: + self.LDW_STEP = 10 # LDW_02 message frequency 10Hz + self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz + self.STEER_DRIVER_ALLOWANCE = 60 # Driver intervention threshold 0.6 Nm + self.STEERING_POWER_MAX = 127 # HCA_03 maximum steering power + self.STEERING_POWER_MIN = 20 # HCA_03 minimum steering power + self.STEERING_POWER_USER = 40 # HCA_03 desired steering power for user intervention + self.STEERING_POWER_STEPS = 5 # HCA_03 steering power counter steps + self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached + #self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m, we estimate that about 0.2 1/m is max of signal + #self.CURVATURE_ERROR = 0.01 # HCA_03 curvature error, yaw rate error at standstill in range of about 0.2 deg/sec + #self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.004, 0.002, 0.001]) # curvature safety limit up + #self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.005, 0.0025, 0.0015]) # curvature safety limit down + self.ANGLE_ERROR = 20 # HCA_03 maximum difference from steering angle + self.ANGLE_MAX = 360 # HCA_03 maximum angle + self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 6., 15.], angle_v=[12., 10.0, 0.6]) + self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 6., 15.], angle_v=[12., 11.0, 0.8]) + self.ANGLE_POWER_FACTOR = 4 + + + self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] + self.hca_status_values = can_define.dv["MEB_EPS_01"]["LatCon_HCA_Status"] + + self.BUTTONS = [ + Button(car.CarState.ButtonEvent.Type.setCruise, "GRA_ACC_01", "GRA_Tip_Setzen", [1]), + Button(car.CarState.ButtonEvent.Type.resumeCruise, "GRA_ACC_01", "GRA_Tip_Wiederaufnahme", [1]), + Button(car.CarState.ButtonEvent.Type.accelCruise, "GRA_ACC_01", "GRA_Tip_Hoch", [1]), + Button(car.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), + Button(car.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), + Button(car.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), + ] + + self.LDW_MESSAGES = { + "none": 0, # Nothing to display + "laneAssistUnavailChime": 1, # "Lane Assist currently not available." with chime + "laneAssistUnavailNoSensorChime": 3, # "Lane Assist not available. No sensor view." with chime + "laneAssistTakeOverUrgent": 4, # "Lane Assist: Please Take Over Steering" with urgent beep + "emergencyAssistUrgent": 6, # "Emergency Assist: Please Take Over Steering" with urgent beep + "laneAssistTakeOverChime": 7, # "Lane Assist: Please Take Over Steering" with chime + "laneAssistTakeOver": 8, # "Lane Assist: Please Take Over Steering" silent + "emergencyAssistChangingLanes": 9, # "Emergency Assist: Changing lanes..." with urgent beep + "laneAssistDeactivated": 10, # "Lane Assist deactivated." silent with persistent icon afterward + } else: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz @@ -138,6 +182,7 @@ class VolkswagenFlags(IntFlag): # Static flags PQ = 2 + MEB = 4 @dataclass @@ -147,6 +192,18 @@ class VolkswagenMQBPlatformConfig(PlatformConfig): # on camera-integrated cars, as we lose too many ECUs to reliably identify the vehicle chassis_codes: set[str] = field(default_factory=set) wmis: set[WMI] = field(default_factory=set) + + +@dataclass +class VolkswagenMEBPlatformConfig(PlatformConfig): + dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('vw_meb', 'vw_meb')) + # Volkswagen uses the VIN WMI and chassis code to match in the absence of the comma power + # on camera-integrated cars, as we lose too many ECUs to reliably identify the vehicle + chassis_codes: set[str] = field(default_factory=set) + wmis: set[WMI] = field(default_factory=set) + + def init(self): + self.flags |= VolkswagenFlags.MEB @dataclass @@ -183,6 +240,9 @@ class Footnote(Enum): "Model-years 2022 and beyond may have a combined CAN gateway and BCM, which is supported by openpilot " + "in software, but doesn't yet have a harness available from the comma store.", Column.HARDWARE) + VW_MEB = CarFootnote( + "For MEB plattform only steering is supported by openpilot.", + Column.HARDWARE) @dataclass @@ -198,6 +258,9 @@ def init_make(self, CP: structs.CarParams): if CP.carFingerprint in (CAR.VOLKSWAGEN_CRAFTER_MK2, CAR.VOLKSWAGEN_TRANSPORTER_T61): self.car_parts = CarParts([Device.threex_angled_mount, CarHarness.vw_j533]) + if CP.carFingerprint in (CAR.CUPRA_BORN_MK1): + self.footnotes.append(Footnote.VW_MEB) + if abs(CP.minSteerSpeed - CarControllerParams.DEFAULT_MIN_STEER_SPEED) < 1e-3: self.min_steer_speed = 0 @@ -387,6 +450,14 @@ class CAR(Platforms): chassis_codes={"5F"}, wmis={WMI.SEAT}, ) + CUPRA_BORN_MK1 = VolkswagenMEBPlatformConfig( + [ + VWCarDocs("CUPRA Born 2021"), + ], + VolkswagenCarSpecs(mass=1950, wheelbase=2.77), + chassis_codes={"K1"}, + wmis={WMI.SEAT}, + ) SKODA_FABIA_MK4 = VolkswagenMQBPlatformConfig( [VWCarDocs("Škoda Fabia 2022-23", footnotes=[Footnote.VW_MQB_A0])], VolkswagenCarSpecs(mass=1266, wheelbase=2.56), From 8b5e0a4b500c076c30ef1624b2c6ec47a969fdb3 Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Fri, 23 Aug 2024 16:26:21 +0200 Subject: [PATCH 249/653] fix import --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index c4600cfe560..4bd3126086d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,4 +1,4 @@ -from openpilot.selfdrive.car.common.numpy_fast import clip +from opendbc.car.common.numpy_fast import clip def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): values = { From 4ddc2c63629fd0d4c373776cb1b0d90e791704ab Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:02:50 +0200 Subject: [PATCH 250/653] Update substitute.toml add cupra_born --- opendbc/car/torque_data/substitute.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/torque_data/substitute.toml b/opendbc/car/torque_data/substitute.toml index 8724a08010e..bd91eb3578d 100644 --- a/opendbc/car/torque_data/substitute.toml +++ b/opendbc/car/torque_data/substitute.toml @@ -70,6 +70,7 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "VOLKSWAGEN_TAOS_MK1" = "VOLKSWAGEN_TIGUAN_MK2" "VOLKSWAGEN_POLO_MK6" = "VOLKSWAGEN_GOLF_MK7" "SEAT_ATECA_MK1" = "VOLKSWAGEN_GOLF_MK7" +"CUPRA_BORN_MK1" = "VOLKSWAGEN_GOLF_MK7" "SUBARU_CROSSTREK_HYBRID" = "SUBARU_IMPREZA_2020" "SUBARU_FORESTER_HYBRID" = "SUBARU_IMPREZA_2020" From 016735e88754e5833f4997f12b7facd9d687dc94 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:06:06 +0200 Subject: [PATCH 251/653] Update structs.py ad MEB plattform --- opendbc/car/structs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/structs.py b/opendbc/car/structs.py index c3754683532..0bda7124f04 100644 --- a/opendbc/car/structs.py +++ b/opendbc/car/structs.py @@ -432,6 +432,7 @@ class SafetyModel(StrEnum): volkswagenMqbEvo = auto() chryslerCusw = auto() psa = auto() + volkswagenMeb = auto() class SteerControlType(StrEnum): torque = auto() From 31f5e5660fb809ccf7c2c0e1dc032784eda7a990 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:19:34 +0200 Subject: [PATCH 252/653] Update values.py fix --- opendbc/car/volkswagen/values.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 1e4d575f10d..d95feaeac52 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -95,12 +95,12 @@ def __init__(self, CP): self.hca_status_values = can_define.dv["MEB_EPS_01"]["LatCon_HCA_Status"] self.BUTTONS = [ - Button(car.CarState.ButtonEvent.Type.setCruise, "GRA_ACC_01", "GRA_Tip_Setzen", [1]), - Button(car.CarState.ButtonEvent.Type.resumeCruise, "GRA_ACC_01", "GRA_Tip_Wiederaufnahme", [1]), - Button(car.CarState.ButtonEvent.Type.accelCruise, "GRA_ACC_01", "GRA_Tip_Hoch", [1]), - Button(car.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), - Button(car.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), - Button(car.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), + Button(structs.CarState.ButtonEvent.Type.setCruise, "GRA_ACC_01", "GRA_Tip_Setzen", [1]), + Button(structs.CarState.ButtonEvent.Type.resumeCruise, "GRA_ACC_01", "GRA_Tip_Wiederaufnahme", [1]), + Button(structs.CarState.ButtonEvent.Type.accelCruise, "GRA_ACC_01", "GRA_Tip_Hoch", [1]), + Button(structs.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), + Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), + Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), ] self.LDW_MESSAGES = { From d6d9032bdca2807ea16485c26f375f4e15045c9b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:24:39 +0200 Subject: [PATCH 253/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 468666d692a..d62675836ff 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -218,7 +218,7 @@ def update(self, CC, CS, now_nanos): can_sends.append(self.CCS.create_acc_buttons_control(self.packer_pt, self.ext_bus, CS.gra_stock_values, cancel=CC.cruiseControl.cancel, resume=CC.cruiseControl.resume)) - new_actuators = actuators.as_builder() + new_actuators = copy.copy(actuators) new_actuators.steer = self.apply_steer_last / self.CCP.STEER_MAX new_actuators.steerOutputCan = self.apply_steer_last #new_actuators.curvature = self.apply_curvature_last From 7280c2534304195254658448bfa30ae825dc412f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 17:48:26 +0200 Subject: [PATCH 254/653] Update radar_interface.py fix --- opendbc/car/volkswagen/radar_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 76773496912..ff369803469 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -45,7 +45,7 @@ def update(self, can_strings): return rr def _update(self, updated_messages): - ret = car.RadarData.new_message() + ret = structs.RadarData() if self.rcp is None: return ret From 4d25ebaadf2ad59babd50eadf20fadfb0529861a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 18:01:19 +0200 Subject: [PATCH 255/653] Update radar_interface.py fix --- opendbc/car/volkswagen/radar_interface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index ff369803469..9ad27b526f2 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -61,7 +61,7 @@ def _update(self, updated_messages): signal_part = RADAR_SAME_LANE_01 if signal_part not in self.pts: - self.pts[signal_part] = structs.RadarData.RadarPoint.new_message() + self.pts[signal_part] = structs.RadarData.RadarPoint() self.pts[signal_part].trackId = self.track_id self.track_id += 1 @@ -80,7 +80,7 @@ def _update(self, updated_messages): signal_part = RADAR_SAME_LANE_02 if signal_part not in self.pts: - self.pts[signal_part] = structs.RadarData.RadarPoint.new_message() + self.pts[signal_part] = structs.RadarData.RadarPoint() self.pts[signal_part].trackId = self.track_id self.track_id += 1 From d2f7b90e603cbe89643da8e18648dec9a9cca5b9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 23 Aug 2024 18:05:17 +0200 Subject: [PATCH 256/653] Update interface.py fix --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index d9f85a13540..52d28d708d5 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -39,7 +39,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.enableBsm = True ret.transmissionType = TransmissionType.direct ret.networkLocation = NetworkLocation.fwdCamera # TODO signal sources: I am connected at gateway/ICAS 1 right now - #ret.steerControlType = car.CarParams.SteerControlType.angle + ret.steerControlType = structs.CarParams.SteerControlType.angle ret.radarUnavailable = False #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value From b51f388c2abfd378bc32b3983bed9c8fe4499b96 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 27 Aug 2024 17:43:52 +0200 Subject: [PATCH 257/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 52d28d708d5..b2d6670cfc7 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -38,7 +38,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] ret.enableBsm = True ret.transmissionType = TransmissionType.direct - ret.networkLocation = NetworkLocation.fwdCamera # TODO signal sources: I am connected at gateway/ICAS 1 right now ret.steerControlType = structs.CarParams.SteerControlType.angle ret.radarUnavailable = False #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value From 27c6b7ccee443b8fa2d8dbd5f52d2ebdcc0fe61e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:00:42 +0200 Subject: [PATCH 258/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index d62675836ff..733606563d8 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -162,7 +162,7 @@ def update(self, CC, CS, now_nanos): just_disabled = True if self.long_active_prev and not CC.longActive else False self.long_active_prev = CC.longActive current_speed = CS.out.vEgo * CV.MS_TO_KPH - reversing = CS.out.gearShifter in [car.CarState.GearShifter.reverse] + reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled, starting, stopping, CS.esp_hold_confirmation) From f52af22b0156a1ba204d7a7c671a991333342dba Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:08:58 +0200 Subject: [PATCH 259/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 733606563d8..bc018642de3 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -193,13 +193,10 @@ def update(self, CC, CS, now_nanos): elif self.long_heartbeat == 221: self.long_heartbeat = 360 - set_speed = hud_control.setSpeed * CV.MS_TO_KPH gap = CS.out.vEgo * 1 #* get_T_FOLLOW(hud_control.leadDistanceBars - 1) * 2 acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, - gap, hud_control.leadVisible, - hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, - CS.meb_acc_01_values, CS.distance_stock_values)) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, gap, hud_control.leadVisible, + hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values, CS.distance_stock_values)) else: lead_distance = 0 From bdf987310eeb5d0eb81f9d3b32eb17cf07e8ef50 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:24:11 +0200 Subject: [PATCH 260/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index bc018642de3..b2c882ceeeb 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -70,8 +70,7 @@ def update(self, CC, CS, now_nanos): #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) # TODO verify sign (clockwise is negative) #apply_curvature = apply_meb_curvature_limits(actuators.curvature, self.apply_curvature_last, current_curvature, CS.out.vEgoRaw, self.CCP) apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.CCP) - if CS.out.steeringPressed: # adapt OP angle to user input when user intervention, verify: car allows higher angle change independently from power for higher differences - apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) + apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) # steering power as lazy counter steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) From ff0ee9646dd45591367091859ba92bbe55560690 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 27 Aug 2024 18:42:38 +0200 Subject: [PATCH 261/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index b2d6670cfc7..8f42f6784f0 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: ret.steerLimitTimer = 0.8 - ret.steerActuatorDelay = 0.3 + ret.steerActuatorDelay = 0.4 else: ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 @@ -88,13 +88,13 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle if ret.flags & VolkswagenFlags.MEB: - ret.longitudinalActuatorDelay = 0.5 + ret.longitudinalActuatorDelay = 1.0 #ret.longitudinalTuning.deadzoneBP = [0., 8.05] #ret.longitudinalTuning.deadzoneV = [.0, .14] - ret.longitudinalTuning.kpBP = [0., 5., 20.] - ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] - ret.longitudinalTuning.kiBP = [0., 5., 20.] - ret.longitudinalTuning.kiV = [0., 0., -0.13] + #ret.longitudinalTuning.kpBP = [0., 5., 20.] + #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] + ret.longitudinalTuning.kiBP = [0., 5., 35.] # try toyota tuning for comparism + ret.longitudinalTuning.kiV = [3.6, 2.4, 1.5] #if params.get_bool('ExperimentalMode'): # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth From d2dbc2bcad6930f4425f5635102b55a66ffe40a2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 17:10:41 +0200 Subject: [PATCH 262/653] Update interface.py adapt long tuning --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 8f42f6784f0..9ce1133e75a 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -94,7 +94,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpBP = [0., 5., 20.] #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] ret.longitudinalTuning.kiBP = [0., 5., 35.] # try toyota tuning for comparism - ret.longitudinalTuning.kiV = [3.6, 2.4, 1.5] + ret.longitudinalTuning.kiV = [3., 2., 1.8] #if params.get_bool('ExperimentalMode'): # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth From 08664b19009eda70cddb93d7c39ef8e4d26e8ae0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:22:31 +0200 Subject: [PATCH 263/653] Update vw_mqb_2010.dbc correct esp_21 --- opendbc/dbc/vw_mqb_2010.dbc | 62 +++++++++++++++++++++++++------------ 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/opendbc/dbc/vw_mqb_2010.dbc b/opendbc/dbc/vw_mqb_2010.dbc index 302625a188a..162066cc9a9 100644 --- a/opendbc/dbc/vw_mqb_2010.dbc +++ b/opendbc/dbc/vw_mqb_2010.dbc @@ -402,25 +402,29 @@ BO_ 1629 ESP_20: 8 Gateway_MQB SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB -BO_ 253 ESP_21: 8 Gateway_MQB - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0|655.32] "Unit_KiloMeterPerHour" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ ASR_Tastung_passiv : 48|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Tastung_passiv : 49|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Systemstatus : 50|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ASR_Schalteingriff : 51|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ ESP_Haltebestaetigung : 53|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_QBit_v_Signal : 55|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ABS_Bremsung : 56|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ASR_Anf : 57|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ MSR_Anf : 58|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ EBV_Eingriff : 59|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ EDS_Eingriff : 60|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Eingriff : 61|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_ASP : 62|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Anhaltevorgang_ACC_aktiv : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB +BO_ 253 ESP_21: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ ESP_Diagnose : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESC_v_Signal_Qualifier_High_Low : 24|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ ESP_Vorsteuerung : 28|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ OBD_Schlechtweg : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ OBD_QBit_Schlechtweg : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0.00|655.32] "Unit_KiloMeterPerHour" BedienSG_hi,DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ASR_Tastung_passiv : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_Tastung_passiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Systemstatus : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ASR_Schalteingriff : 51|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ ESP_QBit_v_Signal : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ABS_Bremsung : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ASR_Anf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MSR_Anf : 58|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ EBV_Eingriff : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ EDS_Eingriff : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Eingriff : 61|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ ESP_ASP : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESC_Neutralschaltung : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX BO_ 987 Gateway_72: 8 Gateway_MQB SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB @@ -1642,3 +1646,23 @@ VAL_ 1720 KBI_Tankfuellstand_Prozent 126 "Init" 127 "Fehler" ; VAL_ 1720 KBI_Nachtanken_erkannt 0 "Geberbetrieb" 1 "Nachtankmodus" ; VAL_ 1720 KBI_Tankinhalt_hochaufl 16382 "Init" 16383 "Fehler" ; VAL_ 1720 KBI_Max_Tankinhalt 254 "Init" 255 "Fehler" ; +VAL_ 253 BR_Eingriffsmoment 1022 "Init" 1023 "Fehler" ; +VAL_ 253 ESP_Diagnose 0 "ESP_nicht_in_Diagnose" 1 "ESP_in_Diagnose" ; +VAL_ 253 ESC_v_Signal_Qualifier_High_Low 0 "Gueteschwelle_kleiner_1kmh" 1 "Gueteschwelle_kleiner_3kmh" 2 "Gueteschwelle_kleiner_5kmh" 3 "Gueteschwelle_kleiner_10kmh" 4 "Gueteschwelle_kleiner_20kmh" 5 "Gueteschwelle_groessergleich_20kmh" 6 "Init" 7 "Fehler" ; +VAL_ 253 ESP_Vorsteuerung 0 "keine_Vorsteuerung_aktiv" 1 "Vorsteuerung_aktiv" ; +VAL_ 253 OBD_Schlechtweg 0 "kein_Schlechtweg_erkannt" 1 "Schlechtweg_erkannt" ; +VAL_ 253 OBD_QBit_Schlechtweg 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 253 ESP_v_Signal 65533 "Unterspannung" 65534 "Init" 65535 "Fehler" ; +VAL_ 253 ASR_Tastung_passiv 0 "ASR_aktiviert" 1 "ASR_passiv_getastet_oder_Schwellen_geaendert" ; +VAL_ 253 ESP_Tastung_passiv 0 "ESP_aktiviert" 1 "ESP_passiv_getastet_oder_Schwellen_geaendert" ; +VAL_ 253 ESP_Systemstatus 0 "iO" 1 "Fehler" ; +VAL_ 253 ASR_Schalteingriff 0 "keine_Anforderung" 1 "ASR_Schaltkennfeld" 2 "Rueckschaltung" 3 "Schaltverbot" ; +VAL_ 253 ESP_QBit_v_Signal 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 253 ABS_Bremsung 0 "keine_ABS_Regelung" 1 "ABS_Regelung_aktiv" ; +VAL_ 253 ASR_Anf 0 "keine_Anforderung" 1 "ASR_Anforderung" ; +VAL_ 253 MSR_Anf 0 "keine Anfoderung" 1 "MSR-Anforderung" ; +VAL_ 253 EBV_Eingriff 0 "kein_EBV_Eingriff" 1 "EBV_Eingriff" ; +VAL_ 253 EDS_Eingriff 0 "kein_EDS_Eingriff" 1 "EDS_Eingriff" ; +VAL_ 253 ESP_Eingriff 0 "kein_ESP_Eingriff" 1 "ESP_Eingriff_aktiv" ; +VAL_ 253 ESP_ASP 0 "inaktiv" 1 "aktiv" ; +VAL_ 253 ESC_Neutralschaltung 0 "keine_Anforderung" 1 "Neutralschaltung_angefordert" ; From 23cbc473d249165ef7288d1dabfbd1aa97f079f0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:24:18 +0200 Subject: [PATCH 264/653] Update vw_meb.dbc correct esp_21 --- opendbc/dbc/vw_meb.dbc | 62 +++++++++++++++++++++++++++++------------- 1 file changed, 43 insertions(+), 19 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index b0b4c847665..325c05a2713 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -52,25 +52,29 @@ BO_ 278 ESP_10: 8 Gateway_MQB SG_ ESP_HL_Fahrtrichtung : 60|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB SG_ ESP_HR_Fahrtrichtung : 62|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB -BO_ 253 ESP_21: 8 Gateway_MQB - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0|655.32] "Unit_KiloMeterPerHour" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ ASR_Tastung_passiv : 48|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Tastung_passiv : 49|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Systemstatus : 50|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ASR_Schalteingriff : 51|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ ESP_Haltebestaetigung : 53|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_QBit_v_Signal : 55|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ABS_Bremsung : 56|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ASR_Anf : 57|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ MSR_Anf : 58|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ EBV_Eingriff : 59|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ EDS_Eingriff : 60|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Eingriff : 61|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_ASP : 62|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ESP_Anhaltevorgang_ACC_aktiv : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB +BO_ 253 ESP_21: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ ESP_Diagnose : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESC_v_Signal_Qualifier_High_Low : 24|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ ESP_Vorsteuerung : 28|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ OBD_Schlechtweg : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ OBD_QBit_Schlechtweg : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0.00|655.32] "Unit_KiloMeterPerHour" BedienSG_hi,DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ASR_Tastung_passiv : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ESP_Tastung_passiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Systemstatus : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC + SG_ ASR_Schalteingriff : 51|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ ESP_QBit_v_Signal : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ABS_Bremsung : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ASR_Anf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MSR_Anf : 58|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ EBV_Eingriff : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ EDS_Eingriff : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ ESP_Eingriff : 61|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High + SG_ ESP_ASP : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ ESC_Neutralschaltung : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX BO_ 795 ESP_24: 8 Gateway SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway @@ -1663,6 +1667,26 @@ BO_ 619 MEB_Travel_Assist_01: 8 XXX VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T"; +VAL_ 253 BR_Eingriffsmoment 1022 "Init" 1023 "Fehler" ; +VAL_ 253 ESP_Diagnose 0 "ESP_nicht_in_Diagnose" 1 "ESP_in_Diagnose" ; +VAL_ 253 ESC_v_Signal_Qualifier_High_Low 0 "Gueteschwelle_kleiner_1kmh" 1 "Gueteschwelle_kleiner_3kmh" 2 "Gueteschwelle_kleiner_5kmh" 3 "Gueteschwelle_kleiner_10kmh" 4 "Gueteschwelle_kleiner_20kmh" 5 "Gueteschwelle_groessergleich_20kmh" 6 "Init" 7 "Fehler" ; +VAL_ 253 ESP_Vorsteuerung 0 "keine_Vorsteuerung_aktiv" 1 "Vorsteuerung_aktiv" ; +VAL_ 253 OBD_Schlechtweg 0 "kein_Schlechtweg_erkannt" 1 "Schlechtweg_erkannt" ; +VAL_ 253 OBD_QBit_Schlechtweg 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 253 ESP_v_Signal 65533 "Unterspannung" 65534 "Init" 65535 "Fehler" ; +VAL_ 253 ASR_Tastung_passiv 0 "ASR_aktiviert" 1 "ASR_passiv_getastet_oder_Schwellen_geaendert" ; +VAL_ 253 ESP_Tastung_passiv 0 "ESP_aktiviert" 1 "ESP_passiv_getastet_oder_Schwellen_geaendert" ; +VAL_ 253 ESP_Systemstatus 0 "iO" 1 "Fehler" ; +VAL_ 253 ASR_Schalteingriff 0 "keine_Anforderung" 1 "ASR_Schaltkennfeld" 2 "Rueckschaltung" 3 "Schaltverbot" ; +VAL_ 253 ESP_QBit_v_Signal 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 253 ABS_Bremsung 0 "keine_ABS_Regelung" 1 "ABS_Regelung_aktiv" ; +VAL_ 253 ASR_Anf 0 "keine_Anforderung" 1 "ASR_Anforderung" ; +VAL_ 253 MSR_Anf 0 "keine Anfoderung" 1 "MSR-Anforderung" ; +VAL_ 253 EBV_Eingriff 0 "kein_EBV_Eingriff" 1 "EBV_Eingriff" ; +VAL_ 253 EDS_Eingriff 0 "kein_EDS_Eingriff" 1 "EDS_Eingriff" ; +VAL_ 253 ESP_Eingriff 0 "kein_ESP_Eingriff" 1 "ESP_Eingriff_aktiv" ; +VAL_ 253 ESP_ASP 0 "inaktiv" 1 "aktiv" ; +VAL_ 253 ESC_Neutralschaltung 0 "keine_Anforderung" 1 "Neutralschaltung_angefordert" ; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; VAL_ 333 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert"; VAL_ 333 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert"; From d5822e8f99b81f77491ffc75996b86d336f48bba Mon Sep 17 00:00:00 2001 From: infiniteCable Date: Wed, 28 Aug 2024 18:24:52 +0200 Subject: [PATCH 265/653] Revert "Update vw_mqb_2010.dbc correct esp_21" This reverts commit 08664b19009eda70cddb93d7c39ef8e4d26e8ae0. --- opendbc/dbc/vw_mqb_2010.dbc | 62 ++++++++++++------------------------- 1 file changed, 19 insertions(+), 43 deletions(-) diff --git a/opendbc/dbc/vw_mqb_2010.dbc b/opendbc/dbc/vw_mqb_2010.dbc index 162066cc9a9..302625a188a 100644 --- a/opendbc/dbc/vw_mqb_2010.dbc +++ b/opendbc/dbc/vw_mqb_2010.dbc @@ -402,29 +402,25 @@ BO_ 1629 ESP_20: 8 Gateway_MQB SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB -BO_ 253 ESP_21: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX - SG_ ESP_Diagnose : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESC_v_Signal_Qualifier_High_Low : 24|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ ESP_Vorsteuerung : 28|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ OBD_Schlechtweg : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ OBD_QBit_Schlechtweg : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0.00|655.32] "Unit_KiloMeterPerHour" BedienSG_hi,DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ASR_Tastung_passiv : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_Tastung_passiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_Systemstatus : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ASR_Schalteingriff : 51|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ ESP_QBit_v_Signal : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ABS_Bremsung : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ASR_Anf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MSR_Anf : 58|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ EBV_Eingriff : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ EDS_Eingriff : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Eingriff : 61|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ ESP_ASP : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESC_Neutralschaltung : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX +BO_ 253 ESP_21: 8 Gateway_MQB + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0|655.32] "Unit_KiloMeterPerHour" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ ASR_Tastung_passiv : 48|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Tastung_passiv : 49|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Systemstatus : 50|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ASR_Schalteingriff : 51|2@1+ (1,0) [0|3] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ ESP_Haltebestaetigung : 53|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_QBit_v_Signal : 55|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ABS_Bremsung : 56|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ASR_Anf : 57|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ MSR_Anf : 58|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ EBV_Eingriff : 59|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ EDS_Eingriff : 60|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Eingriff : 61|1@1+ (1,0) [0|1] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_ASP : 62|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ ESP_Anhaltevorgang_ACC_aktiv : 63|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB BO_ 987 Gateway_72: 8 Gateway_MQB SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB @@ -1646,23 +1642,3 @@ VAL_ 1720 KBI_Tankfuellstand_Prozent 126 "Init" 127 "Fehler" ; VAL_ 1720 KBI_Nachtanken_erkannt 0 "Geberbetrieb" 1 "Nachtankmodus" ; VAL_ 1720 KBI_Tankinhalt_hochaufl 16382 "Init" 16383 "Fehler" ; VAL_ 1720 KBI_Max_Tankinhalt 254 "Init" 255 "Fehler" ; -VAL_ 253 BR_Eingriffsmoment 1022 "Init" 1023 "Fehler" ; -VAL_ 253 ESP_Diagnose 0 "ESP_nicht_in_Diagnose" 1 "ESP_in_Diagnose" ; -VAL_ 253 ESC_v_Signal_Qualifier_High_Low 0 "Gueteschwelle_kleiner_1kmh" 1 "Gueteschwelle_kleiner_3kmh" 2 "Gueteschwelle_kleiner_5kmh" 3 "Gueteschwelle_kleiner_10kmh" 4 "Gueteschwelle_kleiner_20kmh" 5 "Gueteschwelle_groessergleich_20kmh" 6 "Init" 7 "Fehler" ; -VAL_ 253 ESP_Vorsteuerung 0 "keine_Vorsteuerung_aktiv" 1 "Vorsteuerung_aktiv" ; -VAL_ 253 OBD_Schlechtweg 0 "kein_Schlechtweg_erkannt" 1 "Schlechtweg_erkannt" ; -VAL_ 253 OBD_QBit_Schlechtweg 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 253 ESP_v_Signal 65533 "Unterspannung" 65534 "Init" 65535 "Fehler" ; -VAL_ 253 ASR_Tastung_passiv 0 "ASR_aktiviert" 1 "ASR_passiv_getastet_oder_Schwellen_geaendert" ; -VAL_ 253 ESP_Tastung_passiv 0 "ESP_aktiviert" 1 "ESP_passiv_getastet_oder_Schwellen_geaendert" ; -VAL_ 253 ESP_Systemstatus 0 "iO" 1 "Fehler" ; -VAL_ 253 ASR_Schalteingriff 0 "keine_Anforderung" 1 "ASR_Schaltkennfeld" 2 "Rueckschaltung" 3 "Schaltverbot" ; -VAL_ 253 ESP_QBit_v_Signal 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 253 ABS_Bremsung 0 "keine_ABS_Regelung" 1 "ABS_Regelung_aktiv" ; -VAL_ 253 ASR_Anf 0 "keine_Anforderung" 1 "ASR_Anforderung" ; -VAL_ 253 MSR_Anf 0 "keine Anfoderung" 1 "MSR-Anforderung" ; -VAL_ 253 EBV_Eingriff 0 "kein_EBV_Eingriff" 1 "EBV_Eingriff" ; -VAL_ 253 EDS_Eingriff 0 "kein_EDS_Eingriff" 1 "EDS_Eingriff" ; -VAL_ 253 ESP_Eingriff 0 "kein_ESP_Eingriff" 1 "ESP_Eingriff_aktiv" ; -VAL_ 253 ESP_ASP 0 "inaktiv" 1 "aktiv" ; -VAL_ 253 ESC_Neutralschaltung 0 "keine_Anforderung" 1 "Neutralschaltung_angefordert" ; From 20544f4047625b78004b0473990b9c7ca0fca662 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:36:04 +0200 Subject: [PATCH 266/653] Update vw_meb.dbc fix corresponding wheels in meb_esp_01, adapt brake pressure accordingly for now --- opendbc/dbc/vw_meb.dbc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 325c05a2713..1224e27f9ea 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1457,14 +1457,14 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ AEB_Breaking_02 : 32|8@1+ (1,0) [0|255] "" XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressure : 42|9@1+ (1,0) [0|3] "" XXX - SG_ VL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ VR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ HL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ HR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerSecond" XXX - SG_ VL_Brake_Pressure : 152|8@1+ (1,0) [0|100] "" XXX - SG_ VR_Brake_Pressure : 160|8@1+ (1,0) [0|100] "" XXX - SG_ HL_Brake_Pressure : 168|8@1+ (1,0) [0|100] "" XXX - SG_ HR_Brake_Pressure : 176|8@1+ (1,0) [0|100] "" XXX + SG_ HL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ HR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ VL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ VR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ HL_Brake_Pressure : 152|8@1+ (1,0) [0|100] "" XXX + SG_ HR_Brake_Pressure : 160|8@1+ (1,0) [0|100] "" XXX + SG_ VL_Brake_Pressure : 168|8@1+ (1,0) [0|100] "" XXX + SG_ VR_Brake_Pressure : 176|8@1+ (1,0) [0|100] "" XXX SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX From f6a2903e28bb73ca511db169191b70de60f6ef0f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:43:07 +0200 Subject: [PATCH 267/653] Update carstate.py use esp_21 for meb esp off, remove esp_24 one less signal --- opendbc/car/volkswagen/carstate.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index e80d17b7348..73527917255 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -374,7 +374,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.gra_stock_values = pt_cp.vl["GRA_ACC_01"] # Additional safety checks performed in CarInterface. - ret.espDisabled = bool(pt_cp.vl["ESP_24"]["ESP_Off_Lampe"]) # use esp_21 systemstatus? verify + ret.espDisabled = bool(pt_cp.vl["ESP_21"]["ESP_Tastung_passiv"]) # this is also true for ESC Sport mode ret.espActive = bool(pt_cp.vl["ESP_21"]["ESP_Eingriff"]) # EV battery charge WattHours @@ -522,7 +522,6 @@ def get_can_parser_meb(CP): ("ZV_02", 5), # From ZV ("MEB_EPS_01", 100), # ("ESP_21", 50), # - ("ESP_24", 20), # ("MEB_ABS_01", 50), # ("MEB_ESP_01", 100), # ("MEB_ESP_03", 10), # From 246f1fdbab179d6c3794bf56e6107305f977f93b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 28 Aug 2024 18:46:50 +0200 Subject: [PATCH 268/653] Update vw_meb.dbc add ea_02 and val for ea_01 and 02 --- opendbc/dbc/vw_meb.dbc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 1224e27f9ea..17419000189 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -553,6 +553,19 @@ BO_ 420 EA_01: 8 Gateway SG_ EA_Anforderung_HMS : 48|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX +BO_ 496 EA_02: 8 Gateway + SG_ EA_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ EA_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ EA_Texte : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High + SG_ ACF_Lampe_Hands_Off : 16|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ EA_Infotainment_Anf : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ EA_Tueren_Anf : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ EA_Innenraumlicht_Anf : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ zFAS_Warnblinken : 26|2@1+ (1.0,0.0) [0.0|3] "" ZR_High + SG_ STP_Primaeranz : 28|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + SG_ EA_Bremslichtblinken : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ EA_Blinken : 32|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX + BO_ 695 RCTA_01: 8 XXX SG_ RCTA_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX SG_ RCTA_01_CRC : 0|8@1+ (1,0) [0|255] "" XXX @@ -1700,6 +1713,22 @@ VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 " VAL_ 333 ACC_Anhalteweg 2046 "Neutralwert" 2047 "Fehler"; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; VAL_ 333 Accel_Boost 3 "Driving" 0 "Stop" 2 "Driving" 1 "Driving"; +VAL_ 420 EA_Parken_beibehalten_HMS 0 "Parken_nicht_beibehalten" 1 "Parken_beibehalten" 2 "Init" 3 "Fehler" ; +VAL_ 420 EA_Warnruckprofil 0 "keine_Ruckanforderung" 1 "Profil_1" 2 "Profil_2" 3 "Profil_3" 4 "Profil_4" 5 "Profil_5" 6 "Profil_6" 7 "Profil_7" ; +VAL_ 420 EA_eCall_Anf 0 "Keine_Anforderung" 1 "Ausloesen_eCall" ; +VAL_ 420 EA_Funktionsstatus 0 "EA_INIT" 1 "EA_OFF" 2 "EA_STANDBY" 3 "EA_PHASE0_AKTIV" 4 "EA_PHASE1_AKTIV" 5 "EA_PHASE2_AKTIV" 6 "EA_PHASE3_AKTIV" 7 "EA_REVERSIBLER_FEHLER" 8 "EA_IRREVERSIBLER_FEHLER" ; +VAL_ 420 EA_Gurtstraffer_Anf 0 "Keine_Anforderung" 1 "Haptik_1" 2 "Haptik_2" 3 "Haptik_3" ; +VAL_ 420 EA_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" 6 "Parken_mit_P" ; +VAL_ 420 EA_Sollbeschleunigung 2046 "Neutralwert" 2047 "Fehler" ; +VAL_ 496 EA_Texte 0 "keine_Anzeige" 1 "Nothalteassistent_fehlende_Fahreraktivitaet" 2 "Nothalteassistent_aktiv_Fahrzeugfuehrung_uebernehmen" 3 "Nothalteassistent_automatischer_Nothalt_wird_durchgefuehrt" 4 "Nothalteassistent_automatischer_Nothalt_durchgefuehrt" 5 "Nothalteassistent_Verbindung_zum_Notruf_wird_aufgebaut" 6 "Nothalteassistent_deaktiviert" 7 "Nothalteassistent_Eingriff_abgebrochen" 8 "Nothalteassistent_fehlende_Fahreraktivitaet_2" 9 "Sekundenschlaf_erkannt" 10 "LaneAssist_Lenkung_uebernehmen" 11 "ACA_Fahrzeugfuehrung_uebernehmen" 12 "EA_Fahr_Standstreifenwechsel" 14 "Nothalteassistent_nicht_verfuegbar_reversibel" 15 "Nothalteassistent_Stoerung_irreversibel" ; +VAL_ 496 ACF_Lampe_Hands_Off 0 "keine_Anzeige" 1 "Hands_Off_erkannt" ; +VAL_ 496 EA_Infotainment_Anf 0 "Init" 1 "Keine_Absenkung" 2 "Absenkung" 3 "Mute" ; +VAL_ 496 EA_Tueren_Anf 0 "Keine_Anforderung" 1 "Tueren_entriegeln" ; +VAL_ 496 EA_Innenraumlicht_Anf 0 "Innenraumbeleuchtung_ausschalten" 1 "Innenraumbeleuchtung_einschalten" ; +VAL_ 496 zFAS_Warnblinken 0 "Aus" 1 "Statisch" 2 "Taster" 3 "Statisch_ohne_WBT" ; +VAL_ 496 STP_Primaeranz 0 "keine_Anzeige" 1 "Verfuegbar" 2 "Aktiv" 3 "Uebernahme" 4 "Aktiv_Warnung" 5 "Nicht_Verfuegbar" ; +VAL_ 496 EA_Bremslichtblinken 0 "kein_Blinken" 1 "Anforderung_Bremslichtblinken" ; +VAL_ 496 EA_Blinken 0 "Kein_Blinken" 1 "Wechselblinken_links" 2 "Wechselblinken_rechts" 3 "Warnblinken" 4 "Warnblinken_Taster" ; VAL_ 619 Travel_Assist_Status 4 "enabled" 0 "disabled" 2 "ready" 3 "pre_ready"; VAL_ 619 Travel_Assist_Request 4 "enable" 3 "disable" 0 "no_request" 1 "error"; VAL_ 619 Travel_Assist_Available 0 "not_available" 1 "available"; From c23dfb863c1613d1f2eebf0d7e9679efdd31e3a0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 12:39:47 +0200 Subject: [PATCH 269/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index b2c882ceeeb..ac486027042 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -45,6 +45,7 @@ def __init__(self, dbc_name, CP): self.steering_power = 0 self.long_heartbeat = 0 self.long_active_prev = False + self.accel_last = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -154,6 +155,7 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_CONTROL_STEP == 0 and self.CP.openpilotLongitudinalControl: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 + self.accel_last = accel stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) @@ -165,8 +167,17 @@ def update(self, CC, CS, now_nanos): acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled, starting, stopping, CS.esp_hold_confirmation) + required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune + lower_jerk = required_jerk + upper_jerk = required_jerk + + if CS.out.aEgo < accel: + lower_jerk = 0 + else: + upper_jerk = 0 + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, - acc_hold_type, stopping, starting, CS.esp_hold_confirmation, + acc_hold_type, stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing, CS.meb_acc_02_values)) else: @@ -219,6 +230,7 @@ def update(self, CC, CS, now_nanos): new_actuators.steerOutputCan = self.apply_steer_last #new_actuators.curvature = self.apply_curvature_last new_actuators.steeringAngleDeg = self.apply_angle_last + new_actuators.accel = self.accel_last self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 From 917820e525713833d53061d5427e7ef126b92481 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 12:48:48 +0200 Subject: [PATCH 270/653] Update mebcan.py add jerk --- opendbc/car/volkswagen/mebcan.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 4bd3126086d..9e64ca3ad4d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -98,7 +98,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, esp_hold, speed, reversing, meb_acc_02_values): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, speed, reversing, meb_acc_02_values): commands = [] values = { @@ -106,8 +106,8 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, "ACC_Sollbeschleunigung_02": accel if acc_enabled else 3.01, - "ACC_zul_Regelabw_unten": 0.2, # TODO: dynamic adjustment of comfort-band - "ACC_zul_Regelabw_oben": 0.2, # TODO: dynamic adjustment of comfort-band + "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_enabled else 0, + "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_enabled else 0, "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits "ACC_Anfahren": starting, From 3dca7587613417a80ad23ebaebe8167cb86a39ce Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 13:57:57 +0200 Subject: [PATCH 271/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 73527917255..393ae1fa2e9 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -316,21 +316,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.leftBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Left"] > 0 ret.rightBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Right"] > 0 - # detect an object beside the car with radar and keep minimum of 4 meter - front_dist_min = 4 - - # left side - if self.distance_stock_values['Left_Lane_01_Detection'] > 0 and self.distance_stock_values['Left_Lane_01_Long_Distance'] < front_dist_min: - ret.leftBlindspot = True - if self.distance_stock_values['Left_Lane_02_Detection'] > 0 and self.distance_stock_values['Left_Lane_02_Long_Distance'] < front_dist_min: - ret.leftBlindspot = True - - # right side - if self.distance_stock_values['Right_Lane_01_Detection'] > 0 and self.distance_stock_values['Right_Lane_01_Long_Distance'] < front_dist_min: - ret.rightBlindspot = True - if self.distance_stock_values['Right_Lane_02_Detection'] > 0 and self.distance_stock_values['Right_Lane_02_Long_Distance'] < front_dist_min: - ret.rightBlindspot = True - # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller self.ldw_stock_values = cam_cp.vl["LDW_02"] @@ -338,7 +323,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.meb_acc_02_values = ext_cp.vl["MEB_ACC_02"] ret.stockFcw = False # find signal - ret.stockAeb = False # find signal + ret.stockAeb = pt_cp.vl["MEB_ESP_01"]["AEB_Breaking_01"] > 0 self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] From 15e25e09f173fc5721896fbfd186629d6cfe84b8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:12:46 +0200 Subject: [PATCH 272/653] Update vw_meb.dbc adapt long distances --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 17419000189..78c5bce25cf 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1565,22 +1565,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-10) [0|4294967295] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-10) [0|4294967295] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-10) [0|1023] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-10) [0|4095] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX From 2302e0210b984f60da81a5f39b3b6b119ed3ef30 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 14:32:23 +0200 Subject: [PATCH 273/653] Update vw_meb.dbc adapt long distances, difficulties with moving values at standstill... --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 78c5bce25cf..d932bd40a93 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1565,22 +1565,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-5) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX From 13afae5e0262acf071c7415e36f90fb661914a31 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:38:53 +0200 Subject: [PATCH 274/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index d932bd40a93..5294e9051cc 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1565,22 +1565,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-6) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX From 972ebda364af699e5ce5fcc915f5cc18c0d65cd2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:45:01 +0200 Subject: [PATCH 275/653] Update radar_interface.py --- opendbc/car/volkswagen/radar_interface.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 9ad27b526f2..7eac7fe82c4 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -10,6 +10,8 @@ RADAR_SAME_LANE_01 = 1 RADAR_SAME_LANE_02 = 2 +# info: distance signals can move without physical distance change ... + def get_radar_can_parser(CP): if CP.flags & VolkswagenFlags.MEB: messages = [("MEB_Distance_01", 25)] @@ -68,7 +70,7 @@ def _update(self, updated_messages): valid = msg['Same_Lane_01_Detection'] > 0 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = max(msg['Same_Lane_01_Long_Distance'], 0) #because of a little bit of shifting negative values possible + self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] # negative values possible self.pts[signal_part].yRel = -msg['Same_Lane_01_Lat_Distance'] # left is positive self.pts[signal_part].vRel = msg['Same_Lane_01_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') @@ -87,7 +89,7 @@ def _update(self, updated_messages): valid = msg['Same_Lane_02_Detection'] > 0 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = max(msg['Same_Lane_02_Long_Distance'], 0) + self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] self.pts[signal_part].yRel = -msg['Same_Lane_02_Lat_Distance'] self.pts[signal_part].vRel = msg['Same_Lane_02_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') From 11ff6d78ffcf80e09c5a9e9c32158672c236e23d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:49:27 +0200 Subject: [PATCH 276/653] Update interface.py tuning --- opendbc/car/volkswagen/interface.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 9ce1133e75a..e78889717c8 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: ret.steerLimitTimer = 0.8 - ret.steerActuatorDelay = 0.4 + ret.steerActuatorDelay = 0.35 else: ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 @@ -89,12 +89,10 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 1.0 - #ret.longitudinalTuning.deadzoneBP = [0., 8.05] - #ret.longitudinalTuning.deadzoneV = [.0, .14] #ret.longitudinalTuning.kpBP = [0., 5., 20.] #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] - ret.longitudinalTuning.kiBP = [0., 5., 35.] # try toyota tuning for comparism - ret.longitudinalTuning.kiV = [3., 2., 1.8] + ret.longitudinalTuning.kiBP = [0., 5., 35.] + ret.longitudinalTuning.kiV = [3., 1.8., 1.4] #if params.get_bool('ExperimentalMode'): # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth From cead1d9699e475a6caa327e6b678b74990164dee Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:51:03 +0200 Subject: [PATCH 277/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 5294e9051cc..4b49b310716 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1505,6 +1505,7 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX + SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX SG_ Brake_Pressure : 76|11@1+ (1,0) [0|1023] "" XXX BO_ 522 MEB_ABS_01: 64 XXX From 706eeedb5d7eb7a21880ef65968ece1f8d366fb0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:51:24 +0200 Subject: [PATCH 278/653] Update carstate.py add fcw candidate --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 393ae1fa2e9..0ceecf274c2 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -322,7 +322,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.meb_acc_01_values = ext_cp.vl["MEB_ACC_01"] self.meb_acc_02_values = ext_cp.vl["MEB_ACC_02"] - ret.stockFcw = False # find signal + ret.stockFcw = bool(pt_cp.vl["MEB_ESP_05"]["FCW_Active"]) ret.stockAeb = pt_cp.vl["MEB_ESP_01"]["AEB_Breaking_01"] > 0 self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] From 2c3a90b61a1d781f9578fc86c85aeded124d0a0a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:59:34 +0200 Subject: [PATCH 279/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 0ceecf274c2..1ba7d3d2c65 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -323,7 +323,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.meb_acc_02_values = ext_cp.vl["MEB_ACC_02"] ret.stockFcw = bool(pt_cp.vl["MEB_ESP_05"]["FCW_Active"]) - ret.stockAeb = pt_cp.vl["MEB_ESP_01"]["AEB_Breaking_01"] > 0 + ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] From 09dffc38735b0a58624b4986882bf7eeb2f6a3fc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:00:09 +0200 Subject: [PATCH 280/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 4b49b310716..77ee46c5f7a 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1503,6 +1503,7 @@ BO_ 258 MEB_ESP_04: 48 XXX BO_ 313 MEB_ESP_05: 32 XXX SG_ Brake_Pressed_1 : 16|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX + SG_ AEB_Active : 31|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX From 513c9bd29d687810ab50a311b5e7ada931dbf03b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:12:05 +0200 Subject: [PATCH 281/653] Update values.py add canfd flag --- opendbc/car/volkswagen/values.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d95feaeac52..cfa39933b6c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -183,6 +183,7 @@ class VolkswagenFlags(IntFlag): # Static flags PQ = 2 MEB = 4 + CANFD = 8 @dataclass @@ -207,7 +208,7 @@ def init(self): @dataclass -class VolkswagenPQPlatformConfig(VolkswagenMQBPlatformConfig): +class VolkswagenPQPlatformConfig(PlatformConfig): dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('vw_golf_mk4', None)) def init(self): From a8f48910810bf1f184f4274a2599e5616b8eef3e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:14:11 +0200 Subject: [PATCH 282/653] Update values.py add canfd flag for MEB plattform --- opendbc/car/volkswagen/values.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index cfa39933b6c..f83e3b666e5 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -205,6 +205,7 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): def init(self): self.flags |= VolkswagenFlags.MEB + self.flags |= HyundaiFlags.CANFD @dataclass From 28b1c88392501e1251c8036b2e60785a4e4eef13 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:16:40 +0200 Subject: [PATCH 283/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index f83e3b666e5..a8b8f894f7f 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -205,7 +205,7 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): def init(self): self.flags |= VolkswagenFlags.MEB - self.flags |= HyundaiFlags.CANFD + self.flags |= VolkswagenFlags.CANFD @dataclass From 36f4a14a80e2f7b5a9010bfc735b7b87831c0598 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:44:03 +0200 Subject: [PATCH 284/653] Update common.cc add magic bytes for meb esp 05 --- opendbc/can/common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index f1362693454..731e503fc9f 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -233,6 +233,9 @@ unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const case 0x26B: // MEB_TRAVEL_ASSIST_01 crc ^= (uint8_t[]){0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}[counter]; break; + case 0x139: // MEB_ESP_05 + crc ^= (uint8_t[]){0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}[counter]; + break; case 0x14C: // MEB_ESP_03 crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; break; From bc4472ac2eb98fc757234a8ccdec0cf2e26bfe5c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:44:55 +0200 Subject: [PATCH 285/653] Update vw_meb.dbc add chksum and counter for meb esp 05 --- opendbc/dbc/vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 77ee46c5f7a..640c02590dc 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1501,6 +1501,8 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX BO_ 313 MEB_ESP_05: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Brake_Pressed_1 : 16|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX SG_ AEB_Active : 31|1@0+ (1,0) [0|1] "" XXX From 7cace3d110cc5fb540945307a28a2130883a5586 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:55:06 +0200 Subject: [PATCH 286/653] Update interface.py fix tuning --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index e78889717c8..19dbc1e7872 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -92,7 +92,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpBP = [0., 5., 20.] #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [3., 1.8., 1.4] + ret.longitudinalTuning.kiV = [3., 1.8, 1.4] #if params.get_bool('ExperimentalMode'): # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth From 0d86c88721b53c2c150ad7377ceb6091567387b4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Sep 2024 18:30:28 +0200 Subject: [PATCH 287/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index a8b8f894f7f..f5c83df4cf4 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -209,7 +209,7 @@ def init(self): @dataclass -class VolkswagenPQPlatformConfig(PlatformConfig): +class VolkswagenPQPlatformConfig(VolkswagenMQBPlatformConfig): dbc_dict: DbcDict = field(default_factory=lambda: dbc_dict('vw_golf_mk4', None)) def init(self): From db60cf11f6368ee90f33844abf293877b4459303 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 8 Sep 2024 16:40:16 +0200 Subject: [PATCH 288/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 19dbc1e7872..69bf0ea6305 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -74,8 +74,8 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerLimitTimer = 0.8 - ret.steerActuatorDelay = 0.35 + ret.steerLimitTimer = 0.6 + ret.steerActuatorDelay = 0.5 else: ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 From d722de6b496f039e52610a3b99099bb09d775cac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:01:53 +0200 Subject: [PATCH 289/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 640c02590dc..0bf4762983f 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -275,15 +275,20 @@ BO_ 958 Motor_14: 8 Gateway SG_ MO_HYB_VM_aktiv : 61|1@1+ (1,0) [0|1] "" Sub_Gateway SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1,0) [0|3] "" AWC,Ladegeraet_Konzern,Sub_Gateway -BO_ 1631 Motor_16: 8 Motor_Diesel_MQB - SG_ TSK_QBit_Steigung : 12|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ TSK_QBit_Fahrzeugmasse : 13|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_DPF_reg : 16|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Heizstrom_EKAT : 17|7@1+ (1,0) [0|126] "Unit_Amper" Gateway_MQB - SG_ MO_Heizstrom_SCR : 24|6@1+ (1,0) [0|62] "Unit_Amper" Gateway_MQB - SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ TSK_Steigung : 56|8@1+ (0.8,-101.6) [-101.6|101.6] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB +BO_ 1631 Motor_16: 8 Gateway + SG_ TSK_Grundmasse : 0|8@1+ (32,0) [0|8128] "Unit_KiloGram" ZR_High + SG_ TSK_QBit_Steigung : 12|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ TSK_QBit_Fahrzeugmasse : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_SpannungsAnf_02 : 14|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_DPF_reg : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High + SG_ MO_Heizstrom_EKAT : 17|7@1+ (1,0) [0|126] "Unit_Amper" Vector__XXX + SG_ MO_Heizstrom_SCR : 24|6@1+ (1,0) [0|62] "Unit_Amper" Vector__XXX + SG_ MO_Anzeige_Kaltleuchte : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ MO_P_Generator_ungefiltert_Anf : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX + SG_ TSK_Getriebeinfo : 34|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX + SG_ MO_Energieinhalt_BMS : 36|12@1+ (25,0) [0|102325] "Unit_WattHour" Vector__XXX + SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" OTA_FC,ZR_High + SG_ TSK_Steigung_02 : 56|8@1+ (0.8,-101.6) [-100.8|101.6] "Unit_PerCent" OTA_FC BO_ 1648 Motor_18: 8 Gateway SG_ MO_max_Ladedruck : 0|6@1+ (0.1,0) [0|6.3] "Unit_Bar" Sub_Gateway @@ -1769,3 +1774,15 @@ VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 1631 TSK_QBit_Fahrzeugmasse 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; +VAL_ 1631 MO_SpannungsAnf_02 0 "keine_Anforderung" 1 "Anforderung_Stufe_1" 2 "Anforderung_Stufe_2" 3 "Anforderung_Stufe_3" ; +VAL_ 1631 MO_DPF_reg 0 "DPF_regeneriert_nicht" 1 "DPF_regeneriert" ; +VAL_ 1631 MO_Heizstrom_EKAT 127 "Fehler" ; +VAL_ 1631 MO_Heizstrom_SCR 63 "Fehler" ; +VAL_ 1631 MO_Anzeige_Kaltleuchte 0 "Lampe_aus" 1 "Lampe_an" ; +VAL_ 1631 MO_P_Generator_ungefiltert_Anf 0 "nicht_angefordert" 1 "angefordert" ; +VAL_ 1631 TSK_Getriebeinfo 0 "Handschalter" 1 "AL_AQ_Getriebe" 2 "DL_DQ_Getriebe" 3 "CVT_Getriebe" ; +VAL_ 1631 MO_Energieinhalt_BMS 4094 "Init" 4095 "Fehler" ; +VAL_ 1631 TSK_Fahrzeugmasse_02 255 "Fehler" ; +VAL_ 1631 TSK_Steigung_02 0 "Init_oder_nicht_verbaut" 255 "Fehler" ; From 62800516c9bc7419f7f4299dff6477519ee479e8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 15:11:26 +0200 Subject: [PATCH 290/653] Update carstate.py another signal for EV battery charge --- opendbc/car/volkswagen/carstate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 1ba7d3d2c65..eea32e52f9a 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -363,7 +363,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.espActive = bool(pt_cp.vl["ESP_21"]["ESP_Eingriff"]) # EV battery charge WattHours - #ret.fuelGauge = pt_cp.vl["HVEM_02"]["HVEM_Nutzbare_Energie"] + ret.fuelGauge = pt_cp.vl["Motor_16"]["MO_Energieinhalt_BMS"] self.frame += 1 return ret @@ -501,6 +501,7 @@ def get_can_parser_meb(CP): ("GRA_ACC_01", 33), # From J533 CAN gateway (via LIN from steering wheel controls) ("Airbag_02", 5), # From J234 Airbag control module ("Motor_14", 10), # From J623 Engine control module + ("Motor_16", 2), # From J623 Engine control module ("Blinkmodi_02", 2), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors ("Getriebe_11", 100), # From J743 Auto transmission control module @@ -513,7 +514,6 @@ def get_can_parser_meb(CP): ("MEB_ESP_05", 50), # ("MEB_Light_01", 5), # ("MEB_Motor_01", 50), # - #("HVEM_02", 10), # ] return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.pt) From 405e8f6f3d5369f6911ceead631bb7b7fb13fa6a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:00:10 +0200 Subject: [PATCH 291/653] Update vw_meb.dbc add found signal for epb --- opendbc/dbc/vw_meb.dbc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 0bf4762983f..ef1bab2d64c 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1522,6 +1522,10 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.007,-229.36) [0|255] "" XXX +BO_ 988 MEB_EPB_01: 8 XXX + SG_ EPB_Request : 41|1@1+ (1,0) [0|1] "" XXX + SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX + BO_ 317 MEB_EPS_01: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX @@ -1773,6 +1777,8 @@ VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 988 EPB_Request 0 "geschlossen" 1 "offen" ; +VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; VAL_ 1631 TSK_QBit_Fahrzeugmasse 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; From 2d49db0ec6a62e17da158cd610bd35dbbaf63ebd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:03:26 +0200 Subject: [PATCH 292/653] Update carstate.py add signal for parking brake --- opendbc/car/volkswagen/carstate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index eea32e52f9a..de4768edc2d 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -293,7 +293,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent #ret.regenBraking = find signal - #ret.parkingBrake = find signal + ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Request"] == 0 # Update gear and/or clutch position data. ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) @@ -512,6 +512,7 @@ def get_can_parser_meb(CP): ("MEB_ESP_01", 100), # ("MEB_ESP_03", 10), # ("MEB_ESP_05", 50), # + ("MEB_EPB_01", 20), # ("MEB_Light_01", 5), # ("MEB_Motor_01", 50), # ] From f34a7b57a74e74b7f60c909da80f03d94edf8bd5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:37:37 +0200 Subject: [PATCH 293/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index ef1bab2d64c..a31663a5588 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1523,7 +1523,6 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate : 200|16@1+ (0.007,-229.36) [0|255] "" XXX BO_ 988 MEB_EPB_01: 8 XXX - SG_ EPB_Request : 41|1@1+ (1,0) [0|1] "" XXX SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX BO_ 317 MEB_EPS_01: 32 XXX @@ -1777,7 +1776,6 @@ VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; -VAL_ 988 EPB_Request 0 "geschlossen" 1 "offen" ; VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; From 4e8999109d9e6183709bf61c7f612e60653f697e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 16:38:09 +0200 Subject: [PATCH 294/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index de4768edc2d..af5a05a04a9 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -293,7 +293,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent #ret.regenBraking = find signal - ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Request"] == 0 + ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] == 1 # Update gear and/or clutch position data. ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) From 798c646ed46b2aa355efb69795ccbc4e6b923d1d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:21:05 +0200 Subject: [PATCH 295/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 63 +++++++++++--------------------- 1 file changed, 22 insertions(+), 41 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 9e64ca3ad4d..b26fc8d1681 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -99,6 +99,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, speed, reversing, meb_acc_02_values): + LONG_ACTIVE = 3 commands = [] values = { @@ -114,7 +115,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Anhalten": stopping, "ACC_Anhalteweg": 20.46, "ACC_Anforderung_HMS": acc_hold_type, - "ACC_AKTIV_regelt": 1 if acc_control == 3 else 0, + "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "Speed": speed, # dont know if neccessary "Reversing": reversing, # dont know if neccessary } @@ -134,7 +135,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont # the button does nothing with this values_ta = { "Travel_Assist_Status" : 2, # ready - "Travel_Assist_Request" : 0, # no request + "Travel_Assist_Request" : 0, # no request "Travel_Assist_Available" : 1, } @@ -156,58 +157,32 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): return acc_hud_control -def create_acc_hud_control(packer, bus, acc_control, set_speed, gap, lead_visible, distance, heartbeat, esp_hold, meb_acc_01_values, distance_stock_values): - zeitluecke_1 = 0 - zeitluecke_2 = 0 - zeitluecke_3 = 0 - zeitluecke_4 = 0 - zeitluecke_5 = 0 - - if distance == 1: - zeitluecke_1 = gap - elif distance == 2: - zeitluecke_2 = gap - elif distance == 3: - zeitluecke_3 = gap - elif distance == 4: - zeitluecke_4 = gap - elif distance == 5: - zeitluecke_5 = gap - - # scale lead dist in meter 200 -> 100 - # clip to prevent negative values because of radar signal shift - lead_dist = clip(distance_stock_values["Same_Lane_01_Long_Distance"] * 0.4, 0, 100) - - if lead_visible and distance_stock_values["Same_Lane_01_Detection"] == 0: - lead_dist = 50 +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, gap, heartbeat, esp_hold, meb_acc_01_values): + lead_detected_by_car = True if meb_acc_01_values["Lead_Type_Detected"] > 0 else False + lead_detected_by_op_only = lead_visible and not lead_detected_by_car + LONG_ACTIVE = 3 values = { #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, "ACC_Gesetzte_Zeitluecke": distance, - #"ACC_Anzeige_Zeitluecke": 1 if acc_control == 3 else 0, "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, - "ACC_EGO_Fahrzeug": 1 if acc_control == 3 else 0, + "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary - "Lead_Type_Detected": 1 if lead_visible > 0 else 0, # object should be displayed - "Lead_Type": 3 if lead_visible > 0 else 0, # displaying a car - "Lead_Distance": lead_dist if lead_visible > 0 else 0, # hud distance of object - "ACC_Enabled": 1 if acc_control == 3 else 0, - "ACC_Standby_Override": 1 if acc_control != 3 else 0, - "ACC_AKTIV_regelt": 1 if acc_control == 3 else 0, + "Lead_Type_Detected": 1 if lead_detected_by_op_only else meb_acc_01_values["Lead_Type_Detected"], # object should be displayed + "Lead_Type": 3 if lead_detected_by_op_only else meb_acc_01_values["Lead_Type"], # displaying a car + "Lead_Distance": 80 if lead_detected_by_op_only else meb_acc_01_values["Lead_Distance"], # hud distance of object + "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, + "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, + "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "ACC_Limiter_Mode": 0, - "Lead_Brightness": 3 if acc_control == 3 else 0, # object shows in colour + "Lead_Brightness": 3 if acc_control == LONG_ACTIVE else 0, # object shows in colour "Unknown_03": 106, # prevents errors "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors - "ACC_Special_Events": 3 if esp_hold and acc_control == 3 else 0, # acc ready message at standstill - "Zeitluecke_1_Signal": zeitluecke_1, - "Zeitluecke_2_Signal": zeitluecke_2, - "Zeitluecke_3_Signal": zeitluecke_3, - "Zeitluecke_4_Signal": zeitluecke_4, - "Zeitluecke_5_Signal": zeitluecke_5, + "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill } values.update({ @@ -221,6 +196,12 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, gap, lead_visibl "Unknown_05": meb_acc_01_values["Unknown_05"], "Unknown_06": meb_acc_01_values["Unknown_06"], "Unknown_07": meb_acc_01_values["Unknown_07"], + "Zeitluecke_1_Signal": meb_acc_01_values["Zeitluecke_1_Signal"], + "Zeitluecke_2_Signal": meb_acc_01_values["Zeitluecke_2_Signal"], + "Zeitluecke_3_Signal": meb_acc_01_values["Zeitluecke_3_Signal"], + "Zeitluecke_4_Signal": meb_acc_01_values["Zeitluecke_4_Signal"], + "Zeitluecke_5_Signal": meb_acc_01_values["Zeitluecke_5_Signal"], + "ACC_Anzeige_Zeitluecke": meb_acc_01_values["ACC_Anzeige_Zeitluecke"], }) return packer.make_can_msg("MEB_ACC_01", bus, values) From 405010117c0166993b41163cd1975c34d207d442 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:25:55 +0200 Subject: [PATCH 296/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index ac486027042..08328475cfb 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -203,10 +203,9 @@ def update(self, CC, CS, now_nanos): elif self.long_heartbeat == 221: self.long_heartbeat = 360 - gap = CS.out.vEgo * 1 #* get_T_FOLLOW(hud_control.leadDistanceBars - 1) * 2 acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, gap, hud_control.leadVisible, - hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values, CS.distance_stock_values)) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, + hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values)) else: lead_distance = 0 From 8a9d594f6f05c6e40722663237aca2aa83a5cbac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 17:27:21 +0200 Subject: [PATCH 297/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index af5a05a04a9..7286589aafc 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -308,8 +308,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Update seatbelt fastened status. ret.seatbeltUnlatched = pt_cp.vl["Airbag_02"]["AB_Gurtschloss_FA"] != 3 - self.distance_stock_values = ext_cp.vl["MEB_Distance_01"] - # Consume blind-spot monitoring info/warning LED states, if available. # Infostufe: BSM LED on, Warnung: BSM LED flashing if self.CP.enableBsm: @@ -526,7 +524,7 @@ def get_cam_can_parser_meb(CP): ("MEB_ACC_01", 17), # ("MEB_ACC_02", 50), # ("MEB_Drive_State_01", 20), # - ("MEB_Distance_01", 25), # + #("MEB_Distance_01", 25), # ] return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) From 46b33d6903378f9895bc82fe1dae8d40b666842a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 18:59:58 +0200 Subject: [PATCH 298/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index a31663a5588..d1226ce1052 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1495,13 +1495,15 @@ BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX BO_ 258 MEB_ESP_04: 48 XXX + SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_2 : 8|4@1+ (1,0) [0|15] "" XXX SG_ Lateral_Accel : 16|8@1+ (1,-128) [0|255] "" XXX SG_ Longitudinal_Accel : 24|8@1- (1,0) [0|255] "" XXX SG_ Yaw_Rate : 40|14@1+ (1,0) [0|16383] "" XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX - SG_ AEB_Active : 123|1@1+ (1,0) [0|7] "" XXX + SG_ Regen_Braking : 123|1@1+ (1,0) [0|7] "" XXX SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX From bd953f4e4f1b6ca8db6bc852a462a63d2275ab54 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:01:35 +0200 Subject: [PATCH 299/653] Update carstate.py add candidate for regen braking --- opendbc/car/volkswagen/carstate.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 7286589aafc..9f9242334ee 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -292,7 +292,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.gas = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] * 0.392 # signal width in percent ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent - #ret.regenBraking = find signal + ret.regenBraking = bool(pt_cp.vl["MEB_ESP_04"]["Regen_Braking"]) ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] == 1 # Update gear and/or clutch position data. @@ -509,6 +509,7 @@ def get_can_parser_meb(CP): ("MEB_ABS_01", 50), # ("MEB_ESP_01", 100), # ("MEB_ESP_03", 10), # + ("MEB_ESP_04", 50), # ("MEB_ESP_05", 50), # ("MEB_EPB_01", 20), # ("MEB_Light_01", 5), # From c617900008517f6b911f6910eff156f5d4fd1af3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:08:15 +0200 Subject: [PATCH 300/653] Update vw_meb.dbc rename signals --- opendbc/dbc/vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index d1226ce1052..daac644fa5a 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1552,7 +1552,7 @@ BO_ 267 MEB_Motor_01: 32 XXX SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX -BO_ 588 MEB_Drive_State_01: 16 XXX +BO_ 588 MEB_Side_Assist_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX @@ -1565,7 +1565,7 @@ BO_ 588 MEB_Drive_State_01: 16 XXX SG_ NEW_SIGNAL_1 : 98|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX -BO_ 589 MEB_Side_Assist_01: 64 XXX +BO_ 589 MEB_Side_Assist_02: 64 XXX SG_ Unknown_01 : 100|3@0+ (1,0) [0|7] "" XXX SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX From 9f7f58235422f25441b74f7e4ef559e04a77ece9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 9 Sep 2024 19:09:37 +0200 Subject: [PATCH 301/653] Update carstate.py rename signal --- opendbc/car/volkswagen/carstate.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 9f9242334ee..996ff0d689c 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -311,8 +311,8 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Consume blind-spot monitoring info/warning LED states, if available. # Infostufe: BSM LED on, Warnung: BSM LED flashing if self.CP.enableBsm: - ret.leftBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Left"] > 0 - ret.rightBlindspot = ext_cp.vl["MEB_Drive_State_01"]["Blind_Spot_Right"] > 0 + ret.leftBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Left"] > 0 + ret.rightBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Right"] > 0 # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller @@ -524,7 +524,7 @@ def get_cam_can_parser_meb(CP): ("LDW_02", 10), # From R242 Driver assistance camera ("MEB_ACC_01", 17), # ("MEB_ACC_02", 50), # - ("MEB_Drive_State_01", 20), # + ("MEB_Side_Assist_01", 20), # #("MEB_Distance_01", 25), # ] return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) From 753c2f46cf5abd0f268558c8f019b399a529cfdb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:19:52 +0200 Subject: [PATCH 302/653] Update carstate.py epb get closed and closing state --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 996ff0d689c..bc1e1cd6d3a 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -293,7 +293,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent ret.regenBraking = bool(pt_cp.vl["MEB_ESP_04"]["Regen_Braking"]) - ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] == 1 + ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] in (1, 4) # EPB closing or closed # Update gear and/or clutch position data. ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) From 1971b60bde21587c05d848fbeb7567f79b435eb5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 10 Sep 2024 10:23:16 +0200 Subject: [PATCH 303/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index bc1e1cd6d3a..f795f0f0686 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -348,8 +348,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: if ret.cruiseState.speed > 50: # settable maximum 180km/h ret.cruiseState.speed = 0 - self.distance_stock_values = ext_cp.vl["MEB_Distance_01"] - # Update button states for turn signals and ACC controls, capture all ACC button state/config for passthrough ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_links"]) ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_rechts"]) From 8438a929e8d7cebf6f5dd98fa1b24b08fd97f537 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 11:32:26 +0200 Subject: [PATCH 304/653] Update values.py tune steering power values --- opendbc/car/volkswagen/values.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index ebf04dab1bd..36029fa913e 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -76,8 +76,8 @@ def __init__(self, CP): self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz self.STEER_DRIVER_ALLOWANCE = 60 # Driver intervention threshold 0.6 Nm self.STEERING_POWER_MAX = 127 # HCA_03 maximum steering power - self.STEERING_POWER_MIN = 20 # HCA_03 minimum steering power - self.STEERING_POWER_USER = 40 # HCA_03 desired steering power for user intervention + self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power + self.STEERING_POWER_USER = 60 # HCA_03 desired steering power for user intervention self.STEERING_POWER_STEPS = 5 # HCA_03 steering power counter steps self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached #self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m, we estimate that about 0.2 1/m is max of signal From a9ea5d567ccc6b816728a98f632da0ff7092996d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 12:30:19 +0200 Subject: [PATCH 305/653] Update mebcan.py fix --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b26fc8d1681..b47e308f7e3 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -166,7 +166,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, ga #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, - "ACC_Gesetzte_Zeitluecke": distance, + "ACC_Gesetzte_Zeitluecke": gap, "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, From 76b246ba3da84a4bb1154a7e43a7624456bf622f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:26:13 +0200 Subject: [PATCH 306/653] Update vw_meb.dbc brake and gas in percent --- opendbc/dbc/vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index daac644fa5a..6ba32882159 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1492,7 +1492,7 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Accelerator_Pressure : 175|8@0+ (1,-37) [0|255] "" XXX + SG_ Accelerator_Pressure : 175|8@0+ (0.392,-37) [0|100] "Unit_Percent" XXX BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX @@ -1516,7 +1516,7 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 76|11@1+ (1,0) [0|1023] "" XXX + SG_ Brake_Pressure : 76|11@1+ (0.195,0) [0|100] "Unit_Percent" XXX BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From af9f8f13e10c8f78eed17125a66c18606fe71c55 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 14:27:09 +0200 Subject: [PATCH 307/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index f795f0f0686..2ca1980d033 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -287,12 +287,10 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: #ret.carFaultedNonCritical = # Update gas, brakes, and gearshift. - # accel pressure on meb eps 03 has a really low frequency ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 - ret.gas = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] * 0.392 # signal width in percent - ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) - ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] * 0.195 # this is break general from car for signal width in percent - ret.regenBraking = bool(pt_cp.vl["MEB_ESP_04"]["Regen_Braking"]) + ret.gas = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] + ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user + ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] in (1, 4) # EPB closing or closed # Update gear and/or clutch position data. From b80bc1c124141a99cb30dbf1f1daa8e9b8066dba Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:02:57 +0200 Subject: [PATCH 308/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 69bf0ea6305..82b3560ce20 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -93,16 +93,20 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] ret.longitudinalTuning.kiBP = [0., 5., 35.] ret.longitudinalTuning.kiV = [3., 1.8, 1.4] - #if params.get_bool('ExperimentalMode'): - # ret.longitudinalTuning.kpV = [0.5, 0.2, -0.2] # experimental OP long is less smooth + + if ret.flags & VolkswagenFlags.MEB: + ret.openpilotLongitudinalControl = ret.networkLocation == NetworkLocation.gateway or docs + if ret.openpilotLongitudinalControl: + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL - ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs - if experimental_long: - # Proof-of-concept, prep for E2E only. No radar points available for non MEB. Panda ALLOW_DEBUG firmware required. - ret.openpilotLongitudinalControl = True - ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL - if ret.transmissionType == TransmissionType.manual: - ret.minEnableSpeed = 4.5 + else: + ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs + if experimental_long: + # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. + ret.openpilotLongitudinalControl = True + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL + if ret.transmissionType == TransmissionType.manual: + ret.minEnableSpeed = 4.5 ret.vEgoStarting = 0.1 ret.vEgoStopping = 0.5 From 1c9d9f5187431824ea78c77717aa77c667146931 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:04:46 +0200 Subject: [PATCH 309/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 82b3560ce20..f79e7b3340e 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -97,7 +97,8 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.openpilotLongitudinalControl = ret.networkLocation == NetworkLocation.gateway or docs if ret.openpilotLongitudinalControl: - ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL + ret.experimentalLongitudinalAvailable = True + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL else: ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs From 54248fe9dd9d723acf0aeb4262bd282350766b9a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:34:05 +0200 Subject: [PATCH 310/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 6ba32882159..d23e4522a1f 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1777,7 +1777,7 @@ VAL_ 768 Zeitluecke_2_Signal 0 "keine Anzeige" 32 "Minimum"; VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; -VAL_ 267 TSK_STATUS 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 267 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; From 0251b9861934935ac3f28191b191720b409d49a8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:48:27 +0200 Subject: [PATCH 311/653] Update vw_meb.dbc fix accel --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index d23e4522a1f..2e2e93d2e31 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1492,7 +1492,7 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Accelerator_Pressure : 175|8@0+ (0.392,-37) [0|100] "Unit_Percent" XXX + SG_ Accelerator_Pressure : 175|8@0+ (0.392,-14.504) [0|100] "Unit_Percent" XXX BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX From 7cbedfb18c36bdc4c5fa76a39d0044fd76d2e4e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:14:55 +0200 Subject: [PATCH 312/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b47e308f7e3..a5bd6518e8d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -118,15 +118,21 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "Speed": speed, # dont know if neccessary "Reversing": reversing, # dont know if neccessary + "SET_ME_0XFE": 0xFE, + "SET_ME_0X1": 0x1, + "SET_ME_0X9": 0x9, + "SET_ME_0XFE": 0xFE, + "SET_ME_0X1": 0x1, + "SET_ME_0X9": 0x9, } values.update({ - "SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], - "SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], - "SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], - "SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], - "SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], - "SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], + #"SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], + #"SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], + #"SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], + #"SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], + #"SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], + #"SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], }) commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) @@ -158,8 +164,6 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, gap, heartbeat, esp_hold, meb_acc_01_values): - lead_detected_by_car = True if meb_acc_01_values["Lead_Type_Detected"] > 0 else False - lead_detected_by_op_only = lead_visible and not lead_detected_by_car LONG_ACTIVE = 3 values = { @@ -171,9 +175,9 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, ga "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary - "Lead_Type_Detected": 1 if lead_detected_by_op_only else meb_acc_01_values["Lead_Type_Detected"], # object should be displayed - "Lead_Type": 3 if lead_detected_by_op_only else meb_acc_01_values["Lead_Type"], # displaying a car - "Lead_Distance": 80 if lead_detected_by_op_only else meb_acc_01_values["Lead_Distance"], # hud distance of object + "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed + "Lead_Type": 3 if lead_visible else 0, # displaying a car + "Lead_Distance": 40 if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, @@ -183,25 +187,21 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, ga "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill + "Zeitluecke_3_Signal": 50 + #"ACC_Anzeige_Zeitluecke": + "SET_ME_0X1": 0x1, + "SET_ME_0X3FF": 0x3FF, + "SET_ME_0XFFFF": 0xFFFF, + "SET_ME_0X7FFF": 0x7FFF, } values.update({ #"STA_Primaeranz": meb_acc_01_values["STA_Primaeranz"], - "Unknown_Area_01": meb_acc_01_values["Unknown_Area_01"], - "SET_ME_0X1": meb_acc_01_values["SET_ME_0X1"], - "SET_ME_0X3FF": meb_acc_01_values["SET_ME_0X3FF"], - "SET_ME_0XFFFF": meb_acc_01_values["SET_ME_0XFFFF"], - "SET_ME_0X7FFF": meb_acc_01_values["SET_ME_0X7FFF"], - "Unknown_04": meb_acc_01_values["Unknown_04"], - "Unknown_05": meb_acc_01_values["Unknown_05"], - "Unknown_06": meb_acc_01_values["Unknown_06"], - "Unknown_07": meb_acc_01_values["Unknown_07"], - "Zeitluecke_1_Signal": meb_acc_01_values["Zeitluecke_1_Signal"], - "Zeitluecke_2_Signal": meb_acc_01_values["Zeitluecke_2_Signal"], - "Zeitluecke_3_Signal": meb_acc_01_values["Zeitluecke_3_Signal"], - "Zeitluecke_4_Signal": meb_acc_01_values["Zeitluecke_4_Signal"], - "Zeitluecke_5_Signal": meb_acc_01_values["Zeitluecke_5_Signal"], - "ACC_Anzeige_Zeitluecke": meb_acc_01_values["ACC_Anzeige_Zeitluecke"], + #"Unknown_Area_01": meb_acc_01_values["Unknown_Area_01"], + #"Unknown_04": meb_acc_01_values["Unknown_04"], + #"Unknown_05": meb_acc_01_values["Unknown_05"], + #"Unknown_06": meb_acc_01_values["Unknown_06"], + #"Unknown_07": meb_acc_01_values["Unknown_07"], }) return packer.make_can_msg("MEB_ACC_01", bus, values) From 0601aa71457a2a2ee63db2d86712f87495367d6c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:21:17 +0200 Subject: [PATCH 313/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 2e2e93d2e31..b965e522475 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1474,7 +1474,7 @@ BO_ 252 MEB_ESP_01: 48 XXX SG_ AEB_Breaking_01 : 24|8@1+ (1,0) [0|255] "" XXX SG_ AEB_Breaking_02 : 32|8@1+ (1,0) [0|255] "" XXX SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 42|9@1+ (1,0) [0|3] "" XXX + SG_ Brake_Pressure : 42|9@1+ (0.195,0) [0|100] "Unit_Percent" XXX SG_ HL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX SG_ HR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX SG_ VL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX @@ -1516,7 +1516,7 @@ BO_ 313 MEB_ESP_05: 32 XXX SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 76|11@1+ (0.195,0) [0|100] "Unit_Percent" XXX + SG_ Brake_Pressure : 76|11@1+ (1,0) [0|100] "" XXX BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 6535956be5ff67a25c9ba6764729b1c9695842ac Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 11 Sep 2024 17:23:33 +0200 Subject: [PATCH 314/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index a5bd6518e8d..b04d0977a61 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -187,7 +187,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, ga "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_3_Signal": 50 + "Zeitluecke_3_Signal": 50, #"ACC_Anzeige_Zeitluecke": "SET_ME_0X1": 0x1, "SET_ME_0X3FF": 0x3FF, From 0e92ce4a674c6b4909d0c6861640a0d0a3883d80 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:57:58 +0200 Subject: [PATCH 315/653] Update interface.py revert to original state of long control logic --- opendbc/car/volkswagen/interface.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index f79e7b3340e..714c9242383 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -93,21 +93,14 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] ret.longitudinalTuning.kiBP = [0., 5., 35.] ret.longitudinalTuning.kiV = [3., 1.8, 1.4] - - if ret.flags & VolkswagenFlags.MEB: - ret.openpilotLongitudinalControl = ret.networkLocation == NetworkLocation.gateway or docs - if ret.openpilotLongitudinalControl: - ret.experimentalLongitudinalAvailable = True - ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL - - else: - ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs - if experimental_long: - # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. - ret.openpilotLongitudinalControl = True - ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL - if ret.transmissionType == TransmissionType.manual: - ret.minEnableSpeed = 4.5 + + ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs + if experimental_long: + # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. + ret.openpilotLongitudinalControl = True + ret.safetyConfigs[0].safetyParam |= Panda.FLAG_VOLKSWAGEN_LONG_CONTROL + if ret.transmissionType == TransmissionType.manual: + ret.minEnableSpeed = 4.5 ret.vEgoStarting = 0.1 ret.vEgoStopping = 0.5 From 95279b1561f613dad2ad7d0716c609106351107e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:15:21 +0200 Subject: [PATCH 316/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 08328475cfb..f3ef4aa5de9 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -203,9 +203,12 @@ def update(self, CC, CS, now_nanos): elif self.long_heartbeat == 221: self.long_heartbeat = 360 + distance = 50 # TODO get distance from model + desired_gap = 50 # TODO get desired gap from OP + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values)) + hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values)) else: lead_distance = 0 From ce20f5f82a9f24d48a4420ab1760efa02f44d28a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:15:54 +0200 Subject: [PATCH 317/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 74 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b04d0977a61..1fed2256c93 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -98,7 +98,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, speed, reversing, meb_acc_02_values): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, speed, reversing): LONG_ACTIVE = 3 commands = [] @@ -118,30 +118,21 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "Speed": speed, # dont know if neccessary "Reversing": reversing, # dont know if neccessary - "SET_ME_0XFE": 0xFE, - "SET_ME_0X1": 0x1, - "SET_ME_0X9": 0x9, - "SET_ME_0XFE": 0xFE, - "SET_ME_0X1": 0x1, - "SET_ME_0X9": 0x9, + "SET_ME_0XFE": 0xFE, + "SET_ME_0X1": 0x1, + "SET_ME_0X9": 0x9, + "SET_ME_0XFE": 0xFE, + "SET_ME_0X1": 0x1, + "SET_ME_0X9": 0x9, } - - values.update({ - #"SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], - #"SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], - #"SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], - #"SET_ME_0XFE": meb_acc_02_values["SET_ME_0XFE"], - #"SET_ME_0X1": meb_acc_02_values["SET_ME_0X1"], - #"SET_ME_0X9": meb_acc_02_values["SET_ME_0X9"], - }) commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) # satisfy car to prevent errors when pressing Travel Assist Button # the button does nothing with this values_ta = { - "Travel_Assist_Status" : 2, # ready - "Travel_Assist_Request" : 0, # no request + "Travel_Assist_Status" : 2, # ready + "Travel_Assist_Request" : 0, # no request "Travel_Assist_Available" : 1, } @@ -161,23 +152,39 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): acc_hud_control = 0 return acc_hud_control - -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, gap, heartbeat, esp_hold, meb_acc_01_values): + +def get_desired_gap(distance_bars, desired_gap): + gap = 0 + + if desired_gap == 1: + gap = desired_gap + elif desired_gap == 2: + gap = desired_gap + elif desired_gap == 3: + gap = desired_gap + elif desired_gap == 4: + gap = desired_gap + elif desired_gap == 5: + gap = desired_gap + + return gap + +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): LONG_ACTIVE = 3 values = { #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, - "ACC_Gesetzte_Zeitluecke": gap, + "ACC_Gesetzte_Zeitluecke": distance_bars, "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car - "Lead_Distance": 40 if lead_visible else 0, # hud distance of object + "Lead_Distance": distance if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, @@ -187,21 +194,16 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, ga "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_3_Signal": 50, + "Zeitluecke_1_Signal": get_desired_gap(distance_bars, desired_gap), + "Zeitluecke_2_Signal": get_desired_gap(distance_bars, desired_gap), + "Zeitluecke_3_Signal": get_desired_gap(distance_bars, desired_gap), + "Zeitluecke_4_Signal": get_desired_gap(distance_bars, desired_gap), + "Zeitluecke_5_Signal": get_desired_gap(distance_bars, desired_gap), #"ACC_Anzeige_Zeitluecke": - "SET_ME_0X1": 0x1, - "SET_ME_0X3FF": 0x3FF, - "SET_ME_0XFFFF": 0xFFFF, - "SET_ME_0X7FFF": 0x7FFF, + "SET_ME_0X1": 0x1, + "SET_ME_0X3FF": 0x3FF, + "SET_ME_0XFFFF": 0xFFFF, + "SET_ME_0X7FFF": 0x7FFF, } - values.update({ - #"STA_Primaeranz": meb_acc_01_values["STA_Primaeranz"], - #"Unknown_Area_01": meb_acc_01_values["Unknown_Area_01"], - #"Unknown_04": meb_acc_01_values["Unknown_04"], - #"Unknown_05": meb_acc_01_values["Unknown_05"], - #"Unknown_06": meb_acc_01_values["Unknown_06"], - #"Unknown_07": meb_acc_01_values["Unknown_07"], - }) - return packer.make_can_msg("MEB_ACC_01", bus, values) From ecbcf964b0a7eb2c1426f8feb4a8e66e926fec49 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:16:37 +0200 Subject: [PATCH 318/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index f3ef4aa5de9..648133e6d3e 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -176,9 +176,8 @@ def update(self, CC, CS, now_nanos): else: upper_jerk = 0 - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, - acc_hold_type, stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, - current_speed, reversing, CS.meb_acc_02_values)) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, acc_hold_type, + stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing)) else: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) @@ -208,7 +207,7 @@ def update(self, CC, CS, now_nanos): acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation, CS.meb_acc_01_values)) + hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) else: lead_distance = 0 From 53c20ffaba4256090d3c2609d09ab2e94576f38d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:31:37 +0200 Subject: [PATCH 319/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 1fed2256c93..93cf7be8c1e 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -66,11 +66,13 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled): +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, override): if acc_faulted: acc_control = 6 elif just_disabled: acc_control = 5 + elif override: + acc_control = 4 elif long_active: acc_control = 3 elif main_switch_on: @@ -81,11 +83,13 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled): return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override): if acc_faulted or not main_switch_on: acc_hold_type = 0 elif just_disabled: # prevent errors acc_hold_type = 5 # disable acc confirmation + elif override: + acc_hold_type = 5 elif starting: acc_hold_type = 4 # hold release and startup elif stopping: From 59ec41cd7df6d1bc312f523840be2ea37ebd206d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:36:54 +0200 Subject: [PATCH 320/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 648133e6d3e..73fe5fbde63 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -160,13 +160,13 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - just_disabled = True if self.long_active_prev and not CC.longActive else False - self.long_active_prev = CC.longActive + just_disabled = True if self.long_active_prev and not (CC.enabled and CS.out.cruiseState.enabled) else False + self.long_active_prev = CC.enabled and CS.out.cruiseState.enabled current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive, just_disabled, starting, - stopping, CS.esp_hold_confirmation) + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, just_disabled, CC.cruiseControl.override) + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, just_disabled, starting, + stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk @@ -176,8 +176,8 @@ def update(self, CC, CS, now_nanos): else: upper_jerk = 0 - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, acc_hold_type, - stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing)) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, accel, acc_control, acc_hold_type, + stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing, CC.cruiseControl.override)) else: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) From 8029a6430564b5e13183cfed336304528fd5ea06 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 12:38:39 +0200 Subject: [PATCH 321/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 73fe5fbde63..1cc881fd85f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -177,7 +177,7 @@ def update(self, CC, CS, now_nanos): upper_jerk = 0 can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, accel, acc_control, acc_hold_type, - stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing, CC.cruiseControl.override)) + stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing)) else: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) From 85b6285f8691ebd23a002e322b60668ee3b376e8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:17:09 +0200 Subject: [PATCH 322/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index b965e522475..25285cb6654 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1492,7 +1492,7 @@ BO_ 192 MEB_ESP_02: 32 XXX BO_ 332 MEB_ESP_03: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Accelerator_Pressure : 175|8@0+ (0.392,-14.504) [0|100] "Unit_Percent" XXX + SG_ Accelerator_Pressure : 175|8@0+ (0.391,-14.467) [0|100] "Unit_Percent" XXX BO_ 258 MEB_ESP_04: 48 XXX SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX From 1abf67788e121af1593857f62950899d869c965a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:17:14 +0200 Subject: [PATCH 323/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 2ca1980d033..c245e6edbfa 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -315,8 +315,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller self.ldw_stock_values = cam_cp.vl["LDW_02"] - self.meb_acc_01_values = ext_cp.vl["MEB_ACC_01"] - self.meb_acc_02_values = ext_cp.vl["MEB_ACC_02"] ret.stockFcw = bool(pt_cp.vl["MEB_ESP_05"]["FCW_Active"]) ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) From 5cc34dc7a660f4efa1244543ab48687612234dd3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:31:13 +0200 Subject: [PATCH 324/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 1cc881fd85f..f6dec20bf37 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -160,12 +160,12 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - just_disabled = True if self.long_active_prev and not (CC.enabled and CS.out.cruiseState.enabled) else False - self.long_active_prev = CC.enabled and CS.out.cruiseState.enabled + just_disabled = True if self.long_active_prev and not CC.enabled else False + self.long_active_prev = CC.enabled current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, just_disabled, CC.cruiseControl.override) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, just_disabled, starting, + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CC.cruiseControl.override) + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk @@ -205,7 +205,7 @@ def update(self, CC, CS, now_nanos): distance = 50 # TODO get distance from model desired_gap = 50 # TODO get desired gap from OP - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CC.cruiseControl.override) + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From 8e41f887cf1c6f6d982d09dba4bb353d52effdf8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 13:55:23 +0200 Subject: [PATCH 325/653] Update mebcan.py further adaption for getting override car mechanism to work --- opendbc/car/volkswagen/mebcan.py | 33 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 93cf7be8c1e..152a4c820ab 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -68,36 +68,33 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, override): if acc_faulted: - acc_control = 6 + acc_control = 6 # error state elif just_disabled: - acc_control = 5 + acc_control = 5 # disabling controls elif override: - acc_control = 4 + acc_control = 4 # overriding controls elif long_active: - acc_control = 3 + acc_control = 3 # default long control state elif main_switch_on: - acc_control = 2 + acc_control = 2 # long control ready else: - acc_control = 0 + acc_control = 0 # long control offline state return acc_control def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override): - if acc_faulted or not main_switch_on: - acc_hold_type = 0 - elif just_disabled: # prevent errors - acc_hold_type = 5 # disable acc confirmation - elif override: - acc_hold_type = 5 - elif starting: - acc_hold_type = 4 # hold release and startup - elif stopping: + + if just_disabled: + acc_hold_type = 5 # disable confirmation + elif not long_active or not main_switch_on or acc_faulted or override: + acc_hold_type = 0: # no hold request + elif starting or (override and esp_hold): + acc_hold_type = 4 # release request and startup + elif stopping or esp_hold: acc_hold_type = 1 # hold or hold request - elif esp_hold and long_active: - acc_hold_type = 1 # hold else: - acc_hold_type = 0 + acc_hold_type = 0 # no hold request return acc_hold_type From af67dbf1f8444ff614a6c4cf1ae4af4057e2a406 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:15:56 +0200 Subject: [PATCH 326/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 38 +++++++++++++++++--------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 152a4c820ab..15bbe81dcf2 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -88,7 +88,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start if just_disabled: acc_hold_type = 5 # disable confirmation elif not long_active or not main_switch_on or acc_faulted or override: - acc_hold_type = 0: # no hold request + acc_hold_type = 0 # no hold request elif starting or (override and esp_hold): acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -134,7 +134,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont values_ta = { "Travel_Assist_Status" : 2, # ready "Travel_Assist_Request" : 0, # no request - "Travel_Assist_Available" : 1, + "Travel_Assist_Available" : 1, # button is illuminated } commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) @@ -144,18 +144,19 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): if acc_faulted: - acc_hud_control = 6 + acc_hud_control = 6 # error state elif long_active: - acc_hud_control = 4 if override else 3 + acc_hud_control = 4 if override else 3 # active or overriding state elif main_switch_on: - acc_hud_control = 2 + acc_hud_control = 2 # inactive else: - acc_hud_control = 0 + acc_hud_control = 0 # deactivated return acc_hud_control def get_desired_gap(distance_bars, desired_gap): + # mapping desired gap to correct signal of corresponding distance bar gap = 0 if desired_gap == 1: @@ -173,12 +174,13 @@ def get_desired_gap(distance_bars, desired_gap): def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): LONG_ACTIVE = 3 + OVERRIDE = 4 values = { #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, - "ACC_Gesetzte_Zeitluecke": distance_bars, + "ACC_Gesetzte_Zeitluecke": distance_bars, # 5 distance bars available (3 are used by OP) "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, @@ -187,7 +189,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, - "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, + "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE or OVERRIDE else 0, "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "ACC_Limiter_Mode": 0, "Lead_Brightness": 3 if acc_control == LONG_ACTIVE else 0, # object shows in colour @@ -195,16 +197,16 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_1_Signal": get_desired_gap(distance_bars, desired_gap), - "Zeitluecke_2_Signal": get_desired_gap(distance_bars, desired_gap), - "Zeitluecke_3_Signal": get_desired_gap(distance_bars, desired_gap), - "Zeitluecke_4_Signal": get_desired_gap(distance_bars, desired_gap), - "Zeitluecke_5_Signal": get_desired_gap(distance_bars, desired_gap), - #"ACC_Anzeige_Zeitluecke": - "SET_ME_0X1": 0x1, - "SET_ME_0X3FF": 0x3FF, - "SET_ME_0XFFFF": 0xFFFF, - "SET_ME_0X7FFF": 0x7FFF, + "Zeitluecke_1_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 + "Zeitluecke_2_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 + "Zeitluecke_3_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 3 + "Zeitluecke_4_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 4 + "Zeitluecke_5_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 + #"ACC_Anzeige_Zeitluecke": + "SET_ME_0X1": 0x1, # unknown + "SET_ME_0X3FF": 0x3FF, # unknown + "SET_ME_0XFFFF": 0xFFFF, # unknown + "SET_ME_0X7FFF": 0x7FFF, # unknown } return packer.make_can_msg("MEB_ACC_01", bus, values) From 974f10375aceb90c69a5f1ce89803c59f4c8f9be Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:29:42 +0200 Subject: [PATCH 327/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 25285cb6654..cdc4ca59e59 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1646,12 +1646,12 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX SG_ Lead_Distance : 290|10@1+ (0.1,0) [0|7] "Unit_Meter" XXX - SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "" XXX - SG_ Zeitluecke_1_Signal : 334|9@1+ (1,0) [0|3] "" XXX - SG_ Zeitluecke_2_Signal : 344|9@1+ (1,0) [0|63] "" XXX - SG_ Zeitluecke_3_Signal : 354|9@1+ (1,0) [0|63] "" XXX - SG_ Zeitluecke_4_Signal : 364|9@1+ (1,0) [0|15] "" XXX - SG_ Zeitluecke_5_Signal : 374|9@1+ (1,0) [0|3] "" XXX + SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX + SG_ Zeitluecke_1_Signal : 334|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_2_Signal : 344|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_3_Signal : 354|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_4_Signal : 364|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_5_Signal : 374|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX From 17073089ad535cd7ad40c7fcf2705a0d589e5e71 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:31:23 +0200 Subject: [PATCH 328/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index f6dec20bf37..1700570dc7f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -203,7 +203,7 @@ def update(self, CC, CS, now_nanos): self.long_heartbeat = 360 distance = 50 # TODO get distance from model - desired_gap = 50 # TODO get desired gap from OP + desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, From a627a57ddadeef821a28488dc75927b23f6e5943 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:40:47 +0200 Subject: [PATCH 329/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 15bbe81dcf2..c61efb74f1d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -66,15 +66,15 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, override): +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override): if acc_faulted: acc_control = 6 # error state elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 4 # overriding controls + acc_control = 3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) elif long_active: - acc_control = 3 # default long control state + acc_control = 3 # active long control state elif main_switch_on: acc_control = 2 # long control ready else: @@ -87,8 +87,10 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start if just_disabled: acc_hold_type = 5 # disable confirmation - elif not long_active or not main_switch_on or acc_faulted or override: + elif not long_active or not main_switch_on or acc_faulted: acc_hold_type = 0 # no hold request + elif override: + acc_hold_type = 4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request elif starting or (override and esp_hold): acc_hold_type = 4 # release request and startup elif stopping or esp_hold: From c6d27da395e1cb29973b7f55af01e697a35654e8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 14:43:57 +0200 Subject: [PATCH 330/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index c61efb74f1d..4fee5e3b9f2 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -67,6 +67,8 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override): + # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h + # ja, man kann ein E-Auto abwürgen ;) if acc_faulted: acc_control = 6 # error state elif just_disabled: @@ -84,7 +86,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override): - + # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if just_disabled: acc_hold_type = 5 # disable confirmation elif not long_active or not main_switch_on or acc_faulted: From 3933ca5ad889c3fe9d3fe3fdaf00c14f3ba98437 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 15:49:04 +0200 Subject: [PATCH 331/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 4fee5e3b9f2..2e70a5771cc 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -93,7 +93,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start acc_hold_type = 0 # no hold request elif override: acc_hold_type = 4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request - elif starting or (override and esp_hold): + elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: acc_hold_type = 1 # hold or hold request From 4e96a9b84c7fc4e3e3036ca6912cb012df10b08a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:08:51 +0200 Subject: [PATCH 332/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 1700570dc7f..2ba3b4fe801 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -164,7 +164,7 @@ def update(self, CC, CS, now_nanos): self.long_active_prev = CC.enabled current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CC.cruiseControl.override) + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, CC.cruiseControl.override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune From ee4700a5f2a88f6b971563d078a8efe94b04531f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:29:09 +0200 Subject: [PATCH 333/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 2ba3b4fe801..761a115246f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -205,7 +205,7 @@ def update(self, CC, CS, now_nanos): distance = 50 # TODO get distance from model desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CC.cruiseControl.override) + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From 5c5309b8a54a0b363dc920160417a7060f295ed7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:32:05 +0200 Subject: [PATCH 334/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 2e70a5771cc..f7302dd63cd 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -146,11 +146,14 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont return commands -def acc_hud_status_value(main_switch_on, acc_faulted, long_active, override): +def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override): if acc_faulted: acc_hud_control = 6 # error state elif long_active: - acc_hud_control = 4 if override else 3 # active or overriding state + if override: + acc_hud_control = 3 if esp_hold else 4 # override at standstill is starting condition + else: + acc_hud_control = 3 # active elif main_switch_on: acc_hud_control = 2 # inactive else: From 2456ee8308367c0d839de77aea58cebd3e0904bd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:45:47 +0200 Subject: [PATCH 335/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index f7302dd63cd..825d8f8dee5 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -74,7 +74,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) + acc_control = 4 #3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -92,7 +92,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start elif not long_active or not main_switch_on or acc_faulted: acc_hold_type = 0 # no hold request elif override: - acc_hold_type = 4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request + acc_hold_type = 0 #4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -103,7 +103,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, speed, reversing): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): LONG_ACTIVE = 3 commands = [] @@ -111,7 +111,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Typ": acc_type, "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, - "ACC_Sollbeschleunigung_02": accel if acc_enabled else 3.01, + "ACC_Sollbeschleunigung_02": accel if acc_enabled and not override else 3.01, "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_enabled else 0, "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_enabled else 0, "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits @@ -151,7 +151,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove acc_hud_control = 6 # error state elif long_active: if override: - acc_hud_control = 3 if esp_hold else 4 # override at standstill is starting condition + acc_hud_control = 4 #3 if esp_hold else 4 # override at standstill is starting condition else: acc_hud_control = 3 # active elif main_switch_on: From 87bf0b91f21b24f87b8fc161ba0236e59059f389 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:46:19 +0200 Subject: [PATCH 336/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 761a115246f..77f7b32f566 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -177,7 +177,7 @@ def update(self, CC, CS, now_nanos): upper_jerk = 0 can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, accel, acc_control, acc_hold_type, - stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, current_speed, reversing)) + stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) else: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) From f91217979cef43aac71324bee1378f3a4f2c6a2f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 16:50:45 +0200 Subject: [PATCH 337/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 77f7b32f566..512a31a32d2 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -176,11 +176,11 @@ def update(self, CC, CS, now_nanos): else: upper_jerk = 0 - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, accel, acc_control, acc_hold_type, + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) else: - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled) + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) From 51cba5be6aaf5281cefc66cb3104fbbbf2d854a1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 17:16:31 +0200 Subject: [PATCH 338/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 825d8f8dee5..74437ecfff0 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -74,7 +74,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 4 #3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) + acc_control = 3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -92,7 +92,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start elif not long_active or not main_switch_on or acc_faulted: acc_hold_type = 0 # no hold request elif override: - acc_hold_type = 0 #4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request + acc_hold_type = 4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -151,7 +151,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove acc_hud_control = 6 # error state elif long_active: if override: - acc_hud_control = 4 #3 if esp_hold else 4 # override at standstill is starting condition + acc_hud_control = 3 if esp_hold else 4 # override at standstill is starting condition else: acc_hud_control = 3 # active elif main_switch_on: From 95561c4c018b87e16f481287d1fe3b2ae9231bdd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:06:16 +0200 Subject: [PATCH 339/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 512a31a32d2..a0158740bd6 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -164,9 +164,11 @@ def update(self, CC, CS, now_nanos): self.long_active_prev = CC.enabled current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, CC.cruiseControl.override) + override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting + + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, - stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) + stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk @@ -204,8 +206,9 @@ def update(self, CC, CS, now_nanos): distance = 50 # TODO get distance from model desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP + override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override) + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From 1414fd3b09c17efc6deba3b76e5f0e69224fcfe2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:07:45 +0200 Subject: [PATCH 340/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 74437ecfff0..c9eb5dc2fef 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -66,7 +66,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override): +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting)): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h # ja, man kann ein E-Auto abwürgen ;) if acc_faulted: @@ -74,7 +74,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if esp_hold else 4 # overriding controls (standstill and override is a starting event) + acc_control = 3 if override_starting else 4 # overriding controls (standstill and override is a starting event) elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -85,14 +85,14 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting)): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if just_disabled: acc_hold_type = 5 # disable confirmation elif not long_active or not main_switch_on or acc_faulted: acc_hold_type = 0 # no hold request elif override: - acc_hold_type = 4 if esp_hold else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request + acc_hold_type = 4 if override_starting else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -146,12 +146,12 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont return commands -def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override): +def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting): if acc_faulted: acc_hud_control = 6 # error state elif long_active: if override: - acc_hud_control = 3 if esp_hold else 4 # override at standstill is starting condition + acc_hud_control = 3 if override_starting else 4 # override at standstill is starting condition else: acc_hud_control = 3 # active elif main_switch_on: From a293a60e6ef9729de543759b6da9c2785ed6e068 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 12 Sep 2024 19:19:13 +0200 Subject: [PATCH 341/653] Update mebcan.py fix --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index c9eb5dc2fef..6031a93beac 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -66,7 +66,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting)): +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h # ja, man kann ein E-Auto abwürgen ;) if acc_faulted: @@ -85,7 +85,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting)): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if just_disabled: acc_hold_type = 5 # disable confirmation From 63bf2ccdeda6e08afcfe4938581bbe0d55d72075 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:17:25 +0200 Subject: [PATCH 342/653] Update mebcan.py further testing long overriding mechanism --- opendbc/car/volkswagen/mebcan.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 6031a93beac..446a6944755 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,6 +1,7 @@ from opendbc.car.common.numpy_fast import clip def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): + # active lateral control deactivates active steering wheel centering values = { #"Curvature": abs(apply_curvature) * 1000, # in 1/mm "Steering_Angle": abs(apply_curvature), @@ -74,25 +75,25 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if override_starting else 4 # overriding controls (standstill and override is a starting event) + acc_control = 4 # overriding controls elif long_active: acc_control = 3 # active long control state elif main_switch_on: acc_control = 2 # long control ready else: - acc_control = 0 # long control offline state + acc_control = 0 # long control deactivated state return acc_control def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h - if just_disabled: - acc_hold_type = 5 # disable confirmation - elif not long_active or not main_switch_on or acc_faulted: - acc_hold_type = 0 # no hold request + if acc_faulted: + acc_control = 0 # no hold request + elif just_disabled: + acc_hold_type = 5 # cancel hold management elif override: - acc_hold_type = 4 if override_starting else 0 # overriding at standstill is a starting event, apart from that overriding means no hold request + acc_hold_type = 5 if esp_hold else 0 # cancel hold management when override otherwise do nothing elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -149,11 +150,10 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting): if acc_faulted: acc_hud_control = 6 # error state + elif override: + acc_hud_control = 4 # overriding elif long_active: - if override: - acc_hud_control = 3 if override_starting else 4 # override at standstill is starting condition - else: - acc_hud_control = 3 # active + acc_hud_control = 3 # active elif main_switch_on: acc_hud_control = 2 # inactive else: @@ -180,8 +180,8 @@ def get_desired_gap(distance_bars, desired_gap): return gap def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): + # active longitudinal control disables regen mode of accelerator while using overriding mechnism LONG_ACTIVE = 3 - OVERRIDE = 4 values = { #"STA_Primaeranz": acc_hud_status, @@ -196,7 +196,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, - "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE or OVERRIDE else 0, + "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, "ACC_Limiter_Mode": 0, "Lead_Brightness": 3 if acc_control == LONG_ACTIVE else 0, # object shows in colour From 44a2bca1e874b3cc335f9c6110d13216be3e5c9e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:30:09 +0200 Subject: [PATCH 343/653] Update mebcan.py fix --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 446a6944755..a00a4f8d0f0 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -89,7 +89,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if acc_faulted: - acc_control = 0 # no hold request + acc_hold_type = 0 # no hold request elif just_disabled: acc_hold_type = 5 # cancel hold management elif override: From e1b66f2a6e523ccaee69369582f3a74a131f86e5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:15:33 +0200 Subject: [PATCH 344/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index a00a4f8d0f0..872d783cec6 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -75,7 +75,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 4 # overriding controls + acc_control = 3 if esp_hold else 4 elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -93,7 +93,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start elif just_disabled: acc_hold_type = 5 # cancel hold management elif override: - acc_hold_type = 5 if esp_hold else 0 # cancel hold management when override otherwise do nothing + acc_hold_type = 4 if esp_hold else 0 elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -151,7 +151,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove if acc_faulted: acc_hud_control = 6 # error state elif override: - acc_hud_control = 4 # overriding + acc_hud_control = 3 if esp_hold else 4 elif long_active: acc_hud_control = 3 # active elif main_switch_on: From 9c52488771f7dbcfd660945724f3ac5cc86cfb3a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:23:37 +0200 Subject: [PATCH 345/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 872d783cec6..2666bc74818 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -112,7 +112,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Typ": acc_type, "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, - "ACC_Sollbeschleunigung_02": accel if acc_enabled and not override else 3.01, + "ACC_Sollbeschleunigung_02": accel if (acc_enabled and not override) or (override and esp_hold) else 3.01, "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_enabled else 0, "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_enabled else 0, "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits From a1877e5419e2b2399378dfaf8e1574179a62c9a0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:46:51 +0200 Subject: [PATCH 346/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index a0158740bd6..39795bb07d7 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -46,6 +46,7 @@ def __init__(self, dbc_name, CP): self.long_heartbeat = 0 self.long_active_prev = False self.accel_last = 0 + self.long_overwrite_prev = False def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -162,11 +163,14 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: just_disabled = True if self.long_active_prev and not CC.enabled else False self.long_active_prev = CC.enabled + just_overwritten = True if self.long_overwrite_prev and not CC.cruiseControl.override else False + self.long_overwrite_prev = CC.cruiseControl.override current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, + CC.cruiseControl.override, just_overwritten, override_starting) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune From a161518784be7756e83a556f2030201711601a64 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:49:03 +0200 Subject: [PATCH 347/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 39795bb07d7..fc8701b87f0 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -170,9 +170,9 @@ def update(self, CC, CS, now_nanos): override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, - CC.cruiseControl.override, just_overwritten, override_starting) + CC.cruiseControl.override, override_starting) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, - stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) + stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk From 760d969ccca57b7e6b9b1a7262705c2e5068de3c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 15:54:09 +0200 Subject: [PATCH 348/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 2666bc74818..7fb53efa11d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -86,12 +86,12 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, override_starting): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if acc_faulted: acc_hold_type = 0 # no hold request - elif just_disabled: - acc_hold_type = 5 # cancel hold management + elif just_disabled or just_overwritten: + acc_hold_type = 5 # cancel hold management after specifc events elif override: acc_hold_type = 4 if esp_hold else 0 elif starting: From 5c0561be92f0e5221c77832defdf973dfc1e404f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:27:31 +0200 Subject: [PATCH 349/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index fc8701b87f0..6ee80acff5c 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -167,12 +167,14 @@ def update(self, CC, CS, now_nanos): self.long_overwrite_prev = CC.cruiseControl.override current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting + override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting + override_starting_limit = True if CS.out.vEgo > self.CP.vEgoStarting else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, - stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting) + stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting, + override_starting_limit) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk From c2077800f82d4b50ed368d2f005eebbcb6229080 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:30:45 +0200 Subject: [PATCH 350/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 7fb53efa11d..c43a04d5041 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -67,7 +67,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting): +def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting, override_starting_limit): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h # ja, man kann ein E-Auto abwürgen ;) if acc_faulted: @@ -75,7 +75,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if esp_hold else 4 + acc_control = 3 if not override_starting_limit else 4 elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -86,14 +86,14 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if acc_faulted: acc_hold_type = 0 # no hold request elif just_disabled or just_overwritten: acc_hold_type = 5 # cancel hold management after specifc events elif override: - acc_hold_type = 4 if esp_hold else 0 + acc_hold_type = 4 if not override_starting_limit else 0 elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -147,11 +147,11 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont return commands -def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting): +def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting, override_starting_limit): if acc_faulted: acc_hud_control = 6 # error state elif override: - acc_hud_control = 3 if esp_hold else 4 + acc_hud_control = 3 if not override_starting_limit else 4 elif long_active: acc_hud_control = 3 # active elif main_switch_on: From 39efdcd14a1ccf32975da8a70ded52b449b64533 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:33:05 +0200 Subject: [PATCH 351/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 6ee80acff5c..1b819e81609 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -171,7 +171,7 @@ def update(self, CC, CS, now_nanos): override_starting_limit = True if CS.out.vEgo > self.CP.vEgoStarting else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, - CC.cruiseControl.override, override_starting) + CC.cruiseControl.override, override_starting, override_starting_limit) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting, override_starting_limit) @@ -212,9 +212,11 @@ def update(self, CC, CS, now_nanos): distance = 50 # TODO get distance from model desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP - override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting + override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting + override_starting_limit = True if CS.out.vEgo > self.CP.vEgoStarting else False - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override, override_starting) + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override, + override_starting, override_starting_limit) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From f6f1cb58499428606a04eab596c75423cd934401 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:45:49 +0200 Subject: [PATCH 352/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 1b819e81609..77e92f8e311 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -47,6 +47,7 @@ def __init__(self, dbc_name, CP): self.long_active_prev = False self.accel_last = 0 self.long_overwrite_prev = False + self.acc_hold_type_prev = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -174,7 +175,8 @@ def update(self, CC, CS, now_nanos): CC.cruiseControl.override, override_starting, override_starting_limit) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting, - override_starting_limit) + override_starting_limit, self.acc_hold_type_prev) + self.acc_hold_type_prev = acc_hold_type required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk From 449cee6cb6b557a5e5da7eb043f1a6a4a19f7c7b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 16:53:51 +0200 Subject: [PATCH 353/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index c43a04d5041..d86f7e860fd 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -86,7 +86,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit): +def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit, acc_hold_type_prev): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h if acc_faulted: acc_hold_type = 0 # no hold request @@ -99,7 +99,10 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start elif stopping or esp_hold: acc_hold_type = 1 # hold or hold request else: - acc_hold_type = 0 # no hold request + if acc_hold_type_prev == 4: + acc_hold_type = 5 + else: + acc_hold_type = 0 # no hold request return acc_hold_type From d9189ba95abdd86f634396bcf7e4de8348251146 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:05:01 +0200 Subject: [PATCH 354/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index d86f7e860fd..fa0b155b082 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -88,7 +88,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit, acc_hold_type_prev): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h - if acc_faulted: + if acc_faulted or not long_active: acc_hold_type = 0 # no hold request elif just_disabled or just_overwritten: acc_hold_type = 5 # cancel hold management after specifc events @@ -153,7 +153,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting, override_starting_limit): if acc_faulted: acc_hud_control = 6 # error state - elif override: + elif override and long_active: acc_hud_control = 3 if not override_starting_limit else 4 elif long_active: acc_hud_control = 3 # active From 6e79e0b9307e3e9de4159f5f64969e0d6629d84a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:10:29 +0200 Subject: [PATCH 355/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index fa0b155b082..4e94872626d 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -75,7 +75,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if not override_starting_limit else 4 + acc_control = 3 if esp_hold else 4 elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -93,7 +93,12 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start elif just_disabled or just_overwritten: acc_hold_type = 5 # cancel hold management after specifc events elif override: - acc_hold_type = 4 if not override_starting_limit else 0 + if esp_hold: + acc_hold_type = 4 + elif acc_hold_type_prev == 4: + acc_hold_type = 5 + else: + acc_hold_type = 0 elif starting: acc_hold_type = 4 # release request and startup elif stopping or esp_hold: @@ -154,7 +159,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove if acc_faulted: acc_hud_control = 6 # error state elif override and long_active: - acc_hud_control = 3 if not override_starting_limit else 4 + acc_hud_control = 3 if esp_hold else 4 elif long_active: acc_hud_control = 3 # active elif main_switch_on: From 1b587741f20c2d45b82bc5d8efaf05abacca7a15 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 17:53:40 +0200 Subject: [PATCH 356/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 4e94872626d..ffb76f6c370 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -116,11 +116,19 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont LONG_ACTIVE = 3 commands = [] + if acc_enabled: + if override: + acceleration = 0.00 + else: + acceleration = accel + else: + acceleration = 3.01 + values = { "ACC_Typ": acc_type, "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, - "ACC_Sollbeschleunigung_02": accel if (acc_enabled and not override) or (override and esp_hold) else 3.01, + "ACC_Sollbeschleunigung_02": acceleration, "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_enabled else 0, "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_enabled else 0, "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits From a9e555033818965a2727d227ba42612c72833e84 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 18:47:31 +0200 Subject: [PATCH 357/653] Update common.cc adapt meb magic byte format to upstream --- opendbc/can/common.cc | 101 ++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 68 deletions(-) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index e7e312f617b..743ecc8c808 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -179,85 +179,50 @@ unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector return checksum; } +static const std::unordered_map> volkswagen_meb_crc_constants { + {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // MEB_TRAVEL_ASSIST_01 + {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // MEB_ESP_05 + {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // MEB_ESP_03 + {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_MOTOR_01 + {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_ESP_01 + {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // MEB_ABS_01 + {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // MEB_ACC_02 ACC + {0x13D, {0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}}, // MEB_EPS_01 EPS + {0x86, {0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}}, // LWI_01 Steering Angle + {0x9F, {0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}}, // LH_EPS_03 Electric Power Steering + {0xAD, {0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}}, // Getriebe_11 Automatic Gearbox + {0xFD, {0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}}, // ESP_21 Electronic Stability Program + {0x3BE, {0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}}, // Motor_14 Driver Brake Inputs + {0x121, {0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}}, // Motor_20 Driver Throttle Inputs + {0x126, {0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}}, // HCA_01 Heading Control Assist + {0x12B, {0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}}, // GRA_ACC_01 Steering wheel controls for ACC + {0x3C0, {0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}}, // Klemmen_Status_01 ignition and starting status + {0x65D, {0xAC, 0xB3, 0xAB, 0xEB, 0x7A, 0xE1, 0x3B, 0xF7, 0x73, 0xBA, 0x7C, 0x9E, 0x06, 0x5F, 0x02, 0xD9}}, // ESP_20 Electronic Stability Program +}; + unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const std::vector &d) { - // Volkswagen uses standard CRC8 8H2F/AUTOSAR, but they compute it with - // a magic variable padding byte tacked onto the end of the payload. - // https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf + // This is AUTOSAR E2E Profile 2, CRC-8H2F with a "data ID" (varying by message/counter) appended to the payload - uint8_t crc = 0xFF; // Standard init value for CRC8 8H2F/AUTOSAR + uint8_t crc = 0xFF; // CRC-8H2F initial value - // CRC the payload first, skipping over the first byte where the CRC lives. + // CRC over payload first, skipping the first byte where the CRC lives for (int i = 1; i < d.size(); i++) { crc ^= d[i]; crc = crc8_lut_8h2f[crc]; } - // Look up and apply the magic final CRC padding byte, which permutes by CAN - // address, and additionally (for SOME addresses) by the message counter. + // Continue CRC over the "data ID" uint8_t counter = d[1] & 0x0F; - switch (address) { - case 0x26B: // MEB_TRAVEL_ASSIST_01 - crc ^= (uint8_t[]){0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}[counter]; - break; - case 0x139: // MEB_ESP_05 - crc ^= (uint8_t[]){0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}[counter]; - break; - case 0x14C: // MEB_ESP_03 - crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; - break; - case 0x10B: // MEB_MOTOR_01 - crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; - break; - case 0xFC: // MEB_ESP_01 - crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; - break; - case 0x20A: // MEB_ABS_01 - crc ^= (uint8_t[]){0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}[counter]; - break; - case 0x14D: // MEB_ACC_02 ACC - crc ^= (uint8_t[]){0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}[counter]; - break; - case 0x13D: // MEB_EPS_01 EPS - crc ^= (uint8_t[]){0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}[counter]; - break; - case 0x86: // LWI_01 Steering Angle - crc ^= (uint8_t[]){0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}[counter]; - break; - case 0x9F: // LH_EPS_03 Electric Power Steering - crc ^= (uint8_t[]){0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}[counter]; - break; - case 0xAD: // Getriebe_11 Automatic Gearbox - crc ^= (uint8_t[]){0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}[counter]; - break; - case 0xFD: // ESP_21 Electronic Stability Program - crc ^= (uint8_t[]){0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}[counter]; - break; - case 0x3BE: // Motor_14 Driver Brake Inputs - crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; - break; - case 0x121: // Motor_20 Driver Throttle Inputs - crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; - break; - case 0x126: // HCA_01 Heading Control Assist - crc ^= (uint8_t[]){0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}[counter]; - break; - case 0x12B: // GRA_ACC_01 Steering wheel controls for ACC - crc ^= (uint8_t[]){0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}[counter]; - break; - case 0x3C0: // Klemmen_Status_01 ignition and starting status - crc ^= (uint8_t[]){0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}[counter]; - break; - case 0x65D: // ESP_20 Electronic Stability Program - crc ^= (uint8_t[]){0xAC, 0xB3, 0xAB, 0xEB, 0x7A, 0xE1, 0x3B, 0xF7, 0x73, 0xBA, 0x7C, 0x9E, 0x06, 0x5F, 0x02, 0xD9}[counter]; - break; - default: // As-yet undefined CAN message, CRC check expected to fail - printf("Attempt to CRC check undefined Volkswagen message 0x%02X\n", address); - crc ^= (uint8_t[]){0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}[counter]; - break; + + auto crc_const = volkswagen_meb_crc_constants.find(address); + if (crc_const != volkswagen_meb_crc_constants.end()) { + crc ^= crc_const->second[counter]; + crc = crc8_lut_8h2f[crc]; + } else { + printf("Attempt to CRC check undefined Volkswagen message 0x%02X\n", address); } - crc = crc8_lut_8h2f[crc]; - return crc ^ 0xFF; // Return after standard final XOR for CRC8 8H2F/AUTOSAR + return crc ^ 0xFF; // CRC-8H2F final XOR } unsigned int pedal_checksum(uint32_t address, const Signal &sig, const std::vector &d) { From 363362188189005080ec8a6c0f7d9b38e2423179 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 19:22:39 +0200 Subject: [PATCH 358/653] Update values.py --- opendbc/car/volkswagen/values.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index dde49b27a72..5a7f61708ab 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -99,7 +99,8 @@ def __init__(self, CP): Button(structs.CarState.ButtonEvent.Type.resumeCruise, "GRA_ACC_01", "GRA_Tip_Wiederaufnahme", [1]), Button(structs.CarState.ButtonEvent.Type.accelCruise, "GRA_ACC_01", "GRA_Tip_Hoch", [1]), Button(structs.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), - Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), + #Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), # there is no physical cancel button + Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Hauptschalter", [1]), # main button cancels ACC operation when ACC active Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), ] From 95ddfd1b4411d18f46b921f8fc7197d02dd3479f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 13 Sep 2024 19:31:10 +0200 Subject: [PATCH 359/653] Update mebcan.py milestone reached, long control overriding mechanism works, next step minimze complexity --- opendbc/car/volkswagen/mebcan.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index ffb76f6c370..fff1cd02119 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -75,7 +75,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e elif just_disabled: acc_control = 5 # disabling controls elif override: - acc_control = 3 if esp_hold else 4 + acc_control = 3 if esp_hold else 4 # startup while overriding is a starting condition elif long_active: acc_control = 3 # active long control state elif main_switch_on: @@ -88,6 +88,8 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, e def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit, acc_hold_type_prev): # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h + # TODO: CLEANUP -> find working state with minimum complexity + if acc_faulted or not long_active: acc_hold_type = 0 # no hold request elif just_disabled or just_overwritten: @@ -113,16 +115,17 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, start def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): + # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism LONG_ACTIVE = 3 commands = [] if acc_enabled: - if override: + if override: # the car expects a non inactive accel while overriding acceleration = 0.00 else: acceleration = accel else: - acceleration = 3.01 + acceleration = 3.01 # inactive accel values = { "ACC_Typ": acc_type, @@ -153,9 +156,9 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont # satisfy car to prevent errors when pressing Travel Assist Button # the button does nothing with this values_ta = { - "Travel_Assist_Status" : 2, # ready - "Travel_Assist_Request" : 0, # no request - "Travel_Assist_Available" : 1, # button is illuminated + "Travel_Assist_Status": 2, # ready + "Travel_Assist_Request": 0, # no request + "Travel_Assist_Available": 1, # button is illuminated } commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) @@ -167,7 +170,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove if acc_faulted: acc_hud_control = 6 # error state elif override and long_active: - acc_hud_control = 3 if esp_hold else 4 + acc_hud_control = 3 if esp_hold else 4 # startup while overriding is a starting condition and shown as default active elif long_active: acc_hud_control = 3 # active elif main_switch_on: @@ -196,7 +199,6 @@ def get_desired_gap(distance_bars, desired_gap): return gap def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): - # active longitudinal control disables regen mode of accelerator while using overriding mechnism LONG_ACTIVE = 3 values = { From 7dcf9e2b00c258f3c2d5b3dc4f5b51ae8360c865 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 16 Sep 2024 16:48:23 +0200 Subject: [PATCH 360/653] Update interface.py tuning --- opendbc/car/volkswagen/interface.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 70fcabbbbd5..b77fdc69424 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -74,8 +74,8 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerLimitTimer = 0.6 - ret.steerActuatorDelay = 0.5 + ret.steerLimitTimer = 1.2 + ret.steerActuatorDelay = 0.6 else: ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 @@ -89,10 +89,10 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 1.0 - #ret.longitudinalTuning.kpBP = [0., 5., 20.] - #ret.longitudinalTuning.kpV = [0.1, 0.05, 0.] + ret.longitudinalTuning.kpBP = [0., 5., 35.] + ret.longitudinalTuning.kpV = [0., 0.1, 0.4] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [3., 1.8, 1.4] + ret.longitudinalTuning.kiV = [2.8, 1.2, 1.] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 38d163b28b5306dbe7eb15b3011b00034e49d2e5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 16 Sep 2024 18:58:31 +0200 Subject: [PATCH 361/653] Update interface.py higher long kiv again --- opendbc/car/volkswagen/interface.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index b77fdc69424..90698285f92 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -89,10 +89,10 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 1.0 - ret.longitudinalTuning.kpBP = [0., 5., 35.] - ret.longitudinalTuning.kpV = [0., 0.1, 0.4] + #ret.longitudinalTuning.kpBP = [0., 5., 35.] + #ret.longitudinalTuning.kpV = [0., 0.1, 0.4] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [2.8, 1.2, 1.] + ret.longitudinalTuning.kiV = [2.8, 2.6, 2.4] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From e59d23b3ce827d90837543cba7463145c9ae2a53 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 16 Sep 2024 19:48:43 +0200 Subject: [PATCH 362/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 90698285f92..b54addb37c3 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -92,7 +92,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpBP = [0., 5., 35.] #ret.longitudinalTuning.kpV = [0., 0.1, 0.4] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [2.8, 2.6, 2.4] + ret.longitudinalTuning.kiV = [2.5, 2, 1.8] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From d6c54355c2e7a82ee51ca06ded7d3a3e235d185b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 16 Sep 2024 19:51:20 +0200 Subject: [PATCH 363/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index b54addb37c3..6decd020272 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -92,7 +92,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp #ret.longitudinalTuning.kpBP = [0., 5., 35.] #ret.longitudinalTuning.kpV = [0., 0.1, 0.4] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [2.5, 2, 1.8] + ret.longitudinalTuning.kiV = [2.6, 2, 1.8] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 6d5e762f43b10b7ded816bb974f880ff811fbbc2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:33:22 +0200 Subject: [PATCH 364/653] Update carcontroller.py fixes --- opendbc/car/volkswagen/carcontroller.py | 73 ++++++++++++++----------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 77e92f8e311..470e9ba7e67 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -44,10 +44,7 @@ def __init__(self, dbc_name, CP): self.lat_active_prev = False self.steering_power = 0 self.long_heartbeat = 0 - self.long_active_prev = False self.accel_last = 0 - self.long_overwrite_prev = False - self.acc_hold_type_prev = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -156,27 +153,18 @@ def update(self, CC, CS, now_nanos): # **** Acceleration Controls ******************************************** # if self.frame % self.CCP.ACC_CONTROL_STEP == 0 and self.CP.openpilotLongitudinalControl: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 - self.accel_last = accel stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - just_disabled = True if self.long_active_prev and not CC.enabled else False - self.long_active_prev = CC.enabled - just_overwritten = True if self.long_overwrite_prev and not CC.cruiseControl.override else False - self.long_overwrite_prev = CC.cruiseControl.override + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled and CS.out.cruiseState.enabled else 0 + self.accel_last = accel current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting - override_starting_limit = True if CS.out.vEgo > self.CP.vEgoStarting else False - - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, CS.esp_hold_confirmation, - CC.cruiseControl.override, override_starting, override_starting_limit) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, just_disabled, starting, - stopping, CS.esp_hold_confirmation, CC.cruiseControl.override, just_overwritten, override_starting, - override_starting_limit, self.acc_hold_type_prev) - self.acc_hold_type_prev = acc_hold_type + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + CS.esp_hold_confirmation, CC.cruiseControl.override) + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk @@ -186,10 +174,14 @@ def update(self, CC, CS, now_nanos): else: upper_jerk = 0 - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, - stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, + accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, + CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) else: + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 + self.accel_last = accel + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) @@ -202,25 +194,36 @@ def update(self, CC, CS, now_nanos): if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] sound_alert = 1 - can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control, sound_alert)) + if self.CP.flags & VolkswagenFlags.MEB: + can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, + CS.out.steeringPressed, hud_alert, hud_control, sound_alert)) + else: + can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, + CS.out.steeringPressed, hud_alert, hud_control)) + + if self.frame % 100 == 0 and self.lead_distance_bar_timer <= 3: + self.lead_distance_bar_timer += 1 if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - if self.long_heartbeat != 221: - self.long_heartbeat = 221 - elif self.long_heartbeat == 221: - self.long_heartbeat = 360 + self.long_heartbeat = generate_vw_meb_hud_heartbeat() + desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 # TODO get distance from model desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP - override_starting = CC.cruiseControl.override and CS.out.vEgo < self.CP.vEgoStarting - override_starting_limit = True if CS.out.vEgo > self.CP.vEgoStarting else False + distance = 50 #min(self.lead_distance, 100) + + change_distance_bar = False + if hud_control.leadDistanceBars != self.lead_distance_bars_last: + self.lead_distance_bar_timer = 0 + self.lead_distance_bars_last = hud_control.leadDistanceBars + change_distance_bar = True if self.lead_distance_bar_timer <= 3 else False - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override, - override_starting, override_starting_limit) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + CS.esp_hold_confirmation, CC.cruiseControl.override) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, + hud_control.leadVisible, hud_control.leadDistanceBars, change_distance_bar, + desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) else: lead_distance = 0 @@ -249,3 +252,9 @@ def update(self, CC, CS, now_nanos): self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 return new_actuators, can_sends + + def generate_vw_meb_hud_heartbeat(self): + if self.long_heartbeat != 221: + return 221 + elif self.long_heartbeat == 221: + return 360 From 78850441e08c7d5c2da7da8fd128bb133e3d2f4c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:34:53 +0200 Subject: [PATCH 365/653] Update mebcan.py fixes --- opendbc/car/volkswagen/mebcan.py | 137 ++++++++++++++++--------------- 1 file changed, 71 insertions(+), 66 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index fff1cd02119..8cbeeed509b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,5 +1,22 @@ from opendbc.car.common.numpy_fast import clip +ACC_CTRL_ERROR = 6 +ACC_CTRL_OVERRIDE = 4 +ACC_CTRL_ACTIVE = 3 +ACC_CTRL_ENABLED = 2 +ACC_CTRL_DISABLED = 0 + +ACC_HMS_NO_REQUEST = 0 +ACC_HMS_RELEASE = 4 +ACC_HMS_HOLD = 1 + +ACC_HUD_ERROR = 6 +ACC_HUD_OVERRIDE = 4 +ACC_HUD_ACTIVE = 3 +ACC_HUD_ENABLED = 2 +ACC_HUD_DISABLED = 0 + + def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): # active lateral control deactivates active steering wheel centering values = { @@ -67,61 +84,47 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, just_disabled, esp_hold, override, override_starting, override_starting_limit): - # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h - # ja, man kann ein E-Auto abwürgen ;) +def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): + if acc_faulted: - acc_control = 6 # error state - elif just_disabled: - acc_control = 5 # disabling controls - elif override: - acc_control = 3 if esp_hold else 4 # startup while overriding is a starting condition + acc_control = ACC_CTRL_ERROR # error state elif long_active: - acc_control = 3 # active long control state + if override: + acc_control = ACC_CTRL_ACTIVE if esp_hold else ACC_CTRL_OVERRIDE # startup while overriding is a starting condition + else: + acc_control = ACC_CTRL_ACTIVE # active long control state elif main_switch_on: - acc_control = 2 # long control ready + acc_control = ACC_CTRL_ENABLED # long control ready else: - acc_control = 0 # long control deactivated state + acc_control = ACC_CTRL_DISABLED # long control deactivated state return acc_control - -def acc_hold_type(main_switch_on, acc_faulted, long_active, just_disabled, starting, stopping, esp_hold, override, just_overwritten, override_starting, override_starting_limit, acc_hold_type_prev): - # WRONG USAGE (ESPECIALLY OVERRIDING STATES) RESULTS IN CAR SHUTTING OFF AT LOW SPEEDS <~ 3km/h - # TODO: CLEANUP -> find working state with minimum complexity - + +def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override): + # warning: car is reacting to hold mechanic even with long control off + if acc_faulted or not long_active: - acc_hold_type = 0 # no hold request - elif just_disabled or just_overwritten: - acc_hold_type = 5 # cancel hold management after specifc events + acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - if esp_hold: - acc_hold_type = 4 - elif acc_hold_type_prev == 4: - acc_hold_type = 5 - else: - acc_hold_type = 0 + acc_hold_type = ACC_HMS_RELEASE if esp_hold else ACC_HMS_NO_REQUEST elif starting: - acc_hold_type = 4 # release request and startup + acc_hold_type = ACC_HMS_RELEASE # release request and startup elif stopping or esp_hold: - acc_hold_type = 1 # hold or hold request + acc_hold_type = ACC_HMS_HOLD # hold or hold request else: - if acc_hold_type_prev == 4: - acc_hold_type = 5 - else: - acc_hold_type = 0 # no hold request + acc_hold_type = ACC_HMS_NO_REQUEST # no hold request return acc_hold_type - + def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism - LONG_ACTIVE = 3 commands = [] if acc_enabled: if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 + acceleration = 0.00 # override accel else: acceleration = accel else: @@ -140,7 +143,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Anhalten": stopping, "ACC_Anhalteweg": 20.46, "ACC_Anforderung_HMS": acc_hold_type, - "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, + "ACC_AKTIV_regelt": 1 if acc_control == ACC_CTRL_ACTIVE else 0, "Speed": speed, # dont know if neccessary "Reversing": reversing, # dont know if neccessary "SET_ME_0XFE": 0xFE, @@ -150,7 +153,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "SET_ME_0X1": 0x1, "SET_ME_0X9": 0x9, } - + commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) # satisfy car to prevent errors when pressing Travel Assist Button @@ -162,21 +165,23 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont } commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) - + return commands -def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override, override_starting, override_starting_limit): +def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override): + if acc_faulted: - acc_hud_control = 6 # error state - elif override and long_active: - acc_hud_control = 3 if esp_hold else 4 # startup while overriding is a starting condition and shown as default active + acc_hud_control = ACC_HUD_ERROR # error state elif long_active: - acc_hud_control = 3 # active + if override: + acc_hud_control = ACC_HUD_ACTIVE if esp_hold else ACC_HUD_OVERRIDE # startup while overriding is a starting condition and shown as default active + else: + acc_hud_control = ACC_HUD_ACTIVE # active elif main_switch_on: - acc_hud_control = 2 # inactive + acc_hud_control = ACC_HUD_ENABLED # inactive else: - acc_hud_control = 0 # deactivated + acc_hud_control = ACC_HUD_DISABLED # deactivated return acc_hud_control @@ -184,23 +189,22 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove def get_desired_gap(distance_bars, desired_gap): # mapping desired gap to correct signal of corresponding distance bar gap = 0 - - if desired_gap == 1: + + if distance_bars == 1: gap = desired_gap - elif desired_gap == 2: + elif distance_bars == 2: gap = desired_gap - elif desired_gap == 3: + elif distance_bars == 3: gap = desired_gap - elif desired_gap == 4: + elif distance_bars == 4: gap = desired_gap - elif desired_gap == 5: + elif distance_bars == 5: gap = desired_gap - + return gap -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): - LONG_ACTIVE = 3 - +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, change_distance_bar, desired_gap, distance, heartbeat, esp_hold): + values = { #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, @@ -208,26 +212,27 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Gesetzte_Zeitluecke": distance_bars, # 5 distance bars available (3 are used by OP) "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, - "ACC_EGO_Fahrzeug": 1 if acc_control == LONG_ACTIVE else 0, + "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object - "ACC_Enabled": 1 if acc_control == LONG_ACTIVE else 0, - "ACC_Standby_Override": 1 if acc_control != LONG_ACTIVE else 0, - "ACC_AKTIV_regelt": 1 if acc_control == LONG_ACTIVE else 0, + "ACC_Enabled": 1 if acc_control == ACC_HUD_ACTIVE else 0, + "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, + "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, "ACC_Limiter_Mode": 0, - "Lead_Brightness": 3 if acc_control == LONG_ACTIVE else 0, # object shows in colour + "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour "Unknown_03": 106, # prevents errors "Unknown_01": 0, # prevents errors "Unknown_08": 0, # prevents errors - "ACC_Special_Events": 3 if esp_hold and acc_control == LONG_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_1_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 - "Zeitluecke_2_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 - "Zeitluecke_3_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 3 - "Zeitluecke_4_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 4 - "Zeitluecke_5_Signal": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 - #"ACC_Anzeige_Zeitluecke": + "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill + "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 + "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 + "Zeitluecke_3": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 3 + "Zeitluecke_4": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 4 + "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 + "ACC_Anzeige_Zeitluecke": change_distance_bar if acc_control != ACC_HUD_DISABLED else 0, # show distance bar selection + "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap "SET_ME_0X1": 0x1, # unknown "SET_ME_0X3FF": 0x3FF, # unknown "SET_ME_0XFFFF": 0xFFFF, # unknown From 349b515ecd572a68395c576b118e2aad40decc82 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:36:12 +0200 Subject: [PATCH 366/653] Update values.py fixes --- opendbc/car/volkswagen/values.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 5a7f61708ab..6d24264d8b0 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -74,7 +74,7 @@ def __init__(self, CP): elif CP.flags & VolkswagenFlags.MEB: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz - self.STEER_DRIVER_ALLOWANCE = 60 # Driver intervention threshold 0.6 Nm + self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.8 Nm self.STEERING_POWER_MAX = 127 # HCA_03 maximum steering power self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power self.STEERING_POWER_USER = 60 # HCA_03 desired steering power for user intervention @@ -184,7 +184,6 @@ class VolkswagenFlags(IntFlag): # Static flags PQ = 2 MEB = 4 - CANFD = 8 @dataclass From 4dc713b6c26c5de7a13c11c5999c168a05b99316 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:39:58 +0200 Subject: [PATCH 367/653] Update interface.py fixes --- opendbc/car/volkswagen/interface.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 6decd020272..0e9792f161d 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -69,15 +69,14 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global lateral tuning defaults, can be overridden per-vehicle + ret.steerLimitTimer = 0.4 if ret.flags & VolkswagenFlags.PQ: - ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerLimitTimer = 1.2 - ret.steerActuatorDelay = 0.6 + # ret.steerLimitTimer = 1.2 + ret.steerActuatorDelay = 0.12 else: - ret.steerLimitTimer = 0.4 ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] ret.lateralTuning.pid.kiBP = [0.] @@ -88,11 +87,12 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle if ret.flags & VolkswagenFlags.MEB: - ret.longitudinalActuatorDelay = 1.0 + ret.longitudinalActuatorDelay = 0.1 + ret.radarTimeStep = (1.0 / 25) # 25Hz #ret.longitudinalTuning.kpBP = [0., 5., 35.] #ret.longitudinalTuning.kpV = [0., 0.1, 0.4] ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [2.6, 2, 1.8] + ret.longitudinalTuning.kiV = [1.2, 0.8, 0.5] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 068d33387e32bbfd98e1e0c7fdf4c79abebe96bb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:41:04 +0200 Subject: [PATCH 368/653] Update radar_interface.py fixes --- opendbc/car/volkswagen/radar_interface.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 7eac7fe82c4..b7e83e74d2c 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -67,10 +67,10 @@ def _update(self, updated_messages): self.pts[signal_part].trackId = self.track_id self.track_id += 1 - valid = msg['Same_Lane_01_Detection'] > 0 + valid = msg['Same_Lane_01_LD_neg_Offset'] > 0 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] # negative values possible + self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] - msg['Same_Lane_01_LD_neg_Offset'] self.pts[signal_part].yRel = -msg['Same_Lane_01_Lat_Distance'] # left is positive self.pts[signal_part].vRel = msg['Same_Lane_01_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') @@ -86,10 +86,10 @@ def _update(self, updated_messages): self.pts[signal_part].trackId = self.track_id self.track_id += 1 - valid = msg['Same_Lane_02_Detection'] > 0 + valid = msg['Same_Lane_02_LD_neg_Offset'] > 0 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] + self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] - msg['Same_Lane_02_LD_neg_Offset'] self.pts[signal_part].yRel = -msg['Same_Lane_02_Lat_Distance'] self.pts[signal_part].vRel = msg['Same_Lane_02_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') From 4800dfd4e6d57b758eb9a6da2e76880adbb750f5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 26 Sep 2024 18:42:43 +0200 Subject: [PATCH 369/653] Update vw_meb.dbc fixes --- opendbc/dbc/vw_meb.dbc | 69 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index cdc4ca59e59..c6b5d4511ed 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1570,38 +1570,38 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX BO_ 591 MEB_Distance_01: 64 XXX - SG_ NEW_SIGNAL_14 : 12|1@0+ (1,0) [0|1] "" XXX - SG_ Same_Lane_01_Detection : 16|6@1+ (1,0) [0|63] "" XXX - SG_ Left_Lane_01_Detection : 22|6@1+ (1,0) [0|3] "" XXX - SG_ Right_Lane_01_Detection : 28|6@1+ (1,0) [0|15] "" XXX - SG_ Same_Lane_02_Detection : 34|6@1+ (1,0) [0|63] "" XXX - SG_ Left_Lane_02_Detection : 40|6@1+ (1,0) [0|63] "" XXX - SG_ Right_Lane_02_Detection : 46|6@1+ (1,0) [0|3] "" XXX - SG_ NEW_SIGNAL_8 : 52|2@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Unknown : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ Same_Lane_01_LD_neg_Offset : 16|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Left_Lane_01_LD_neg_Offset : 22|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Right_Lane_01_LD_neg_Offset : 28|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Same_Lane_02_LD_neg_Offset : 34|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Left_Lane_02_LD_neg_Offset : 40|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Right_Lane_02_LD_neg_Offset : 46|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX + SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.1,-10) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX - SG_ NEW_SIGNAL_3 : 256|8@1+ (1,-128) [0|31] "" XXX - SG_ NEW_SIGNAL_4 : 264|6@1+ (1,-15) [0|31] "" XXX - SG_ NEW_SIGNAL_1 : 270|6@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_5 : 277|6@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_6 : 286|3@0+ (1,0) [0|1] "" XXX + SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX + SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX + SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX + SG_ Unknown_07 : 277|6@1+ (1,0) [0|7] "" XXX + SG_ Unknown_08 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX SG_ Unknown_Area_01 : 0|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX @@ -1629,7 +1629,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_05 : 189|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Zeitluecke_Farbe : 189|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX @@ -1645,13 +1645,13 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX - SG_ Lead_Distance : 290|10@1+ (0.1,0) [0|7] "Unit_Meter" XXX - SG_ ACC_Special_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX - SG_ Zeitluecke_1_Signal : 334|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_2_Signal : 344|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_3_Signal : 354|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_4_Signal : 364|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_5_Signal : 374|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Lead_Distance : 290|10@1+ (0.2,0) [0|7] "Unit_Meter" XXX + SG_ ACC_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX + SG_ Zeitluecke_1 : 334|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_2 : 344|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_3 : 354|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_4 : 364|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_5 : 374|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX BO_ 333 MEB_ACC_02: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1771,12 +1771,13 @@ VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; VAL_ 768 Unknown_03 0 "None" 106 "State_01" 208 "State_02"; VAL_ 768 Lead_Type 5 "Bicycle" 3 "Car" 0 "None" 2 "Truck" 4 "Motorcycle"; -VAL_ 768 ACC_Special_Events 3 "Starting_Available" 0 "None" 5 "Speed_Limit_Camera" 9 "Street_Type" 4 "Speed_Limit_in_Nav"; -VAL_ 768 Zeitluecke_1_Signal 0 "keine Anzeige"; -VAL_ 768 Zeitluecke_2_Signal 0 "keine Anzeige" 32 "Minimum"; -VAL_ 768 Zeitluecke_3_Signal 0 "keine Anzeige"; -VAL_ 768 Zeitluecke_4_Signal 0 "keine Anzeige" 40 "Minimum"; -VAL_ 768 Zeitluecke_5_Signal 0 "keine Anzeige"; +VAL_ 768 ACC_Events 3 "Starting_Available" 0 "None" 5 "Speed_Limit_Camera" 9 "Street_Type" 4 "Speed_Limit_in_Nav"; +VAL_ 768 Zeitluecke_1 0 "keine Anzeige"; +VAL_ 768 Zeitluecke_2 0 "keine Anzeige" 32 "Minimum"; +VAL_ 768 Zeitluecke_3 0 "keine Anzeige"; +VAL_ 768 Zeitluecke_4 0 "keine Anzeige" 40 "Minimum"; +VAL_ 768 Zeitluecke_5 0 "keine Anzeige"; +VAL_ 768 ACC_Zeitluecke_Farbe 0 "white" 1 "yellow"; VAL_ 267 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; From 1f174226e64545ffe5313e788f6d08d1d59aa886 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 27 Sep 2024 11:43:20 +0200 Subject: [PATCH 370/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 8cbeeed509b..e58983ed49b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -135,10 +135,10 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, "ACC_Sollbeschleunigung_02": acceleration, - "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_enabled else 0, - "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_enabled else 0, - "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits - "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_enabled else 0, # TODO: dynamic adjustment of jerk limits + "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_control == ACC_CTRL_ACTIVE else 0, + "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_control == ACC_CTRL_ACTIVE else 0, + "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits + "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits "ACC_Anfahren": starting, "ACC_Anhalten": stopping, "ACC_Anhalteweg": 20.46, From a9b8c929306a2e6008887f901d8ebdc7b45b635b Mon Sep 17 00:00:00 2001 From: infiniteCable2 Date: Fri, 27 Sep 2024 17:37:02 +0200 Subject: [PATCH 371/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 470e9ba7e67..c031eb3244f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -206,11 +206,8 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - self.long_heartbeat = generate_vw_meb_hud_heartbeat() + self.long_heartbeat = self.generate_vw_meb_hud_heartbeat() desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) - - distance = 50 # TODO get distance from model - desired_gap = min(CS.out.vEgo, 100) # TODO get desired gap from OP distance = 50 #min(self.lead_distance, 100) change_distance_bar = False From af88d3f19e74469b3f53d31496b3fd776a98d369 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 27 Sep 2024 17:45:46 +0200 Subject: [PATCH 372/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index c031eb3244f..a0f8165dd49 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -157,13 +157,13 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled and CS.out.cruiseState.enabled else 0 + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk @@ -174,7 +174,7 @@ def update(self, CC, CS, now_nanos): else: upper_jerk = 0 - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled and CS.out.cruiseState.enabled, + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) @@ -216,7 +216,7 @@ def update(self, CC, CS, now_nanos): self.lead_distance_bars_last = hud_control.leadDistanceBars change_distance_bar = True if self.lead_distance_bar_timer <= 3 else False - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, change_distance_bar, From 4274e629e171cbd800c39ed76dac8294f2d678e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 17:54:27 +0200 Subject: [PATCH 373/653] Update vw_meb.dbc current state --- opendbc/dbc/vw_meb.dbc | 59 +++++++++++++++++++++++++++++------------- 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index c6b5d4511ed..2bf5bded172 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1362,7 +1362,7 @@ BO_ 1440 RLS_01: 8 Gateway BO_ 294 HCA_01: 8 Frontsensorik SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [15|30] "Unit_Hertz" Vector__XXX + SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [18|30] "Unit_Hertz" Vector__XXX SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX @@ -1524,6 +1524,15 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX SG_ Yaw_Rate : 200|16@1+ (0.007,-229.36) [0|255] "" XXX +BO_ 261 MEB_ABS_02: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 13|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 20|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 40|2@1+ (1,0) [0|3] "" XXX + SG_ Brake : 53|7@1+ (1,0) [0|3] "" XXX + BO_ 988 MEB_EPB_01: 8 XXX SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX @@ -1538,12 +1547,14 @@ BO_ 317 MEB_EPS_01: 32 XXX SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX BO_ 771 HCA_03: 24 XXX - SG_ Inactive : 13|1@1+ (1,0) [0|1] "" XXX - SG_ Active : 14|1@1+ (1,0) [0|1] "" XXX + SG_ Standby : 13|1@1+ (1,0) [0|1] "" XXX + SG_ Request : 14|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX - SG_ Active_02 : 66|1@1+ (1,0) [0|1] "" XXX + SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX + SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX + SG_ Active : 66|1@1+ (1,0) [0|1] "" XXX BO_ 267 MEB_Motor_01: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1571,30 +1582,30 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX - SG_ Same_Lane_01_LD_neg_Offset : 16|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX - SG_ Left_Lane_01_LD_neg_Offset : 22|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX - SG_ Right_Lane_01_LD_neg_Offset : 28|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX - SG_ Same_Lane_02_LD_neg_Offset : 34|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX - SG_ Left_Lane_02_LD_neg_Offset : 40|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX - SG_ Right_Lane_02_LD_neg_Offset : 46|6@1+ (0.225,0) [0|63] "Unit_Meter" XXX + SG_ Same_Lane_01_LD_Offset : 16|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Left_Lane_01_LD_Offset : 22|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Right_Lane_01_LD_Offset : 28|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Same_Lane_02_LD_Offset : 34|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Left_Lane_02_LD_Offset : 40|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Right_Lane_02_LD_Offset : 46|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.0625,0) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX @@ -1643,7 +1654,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX - SG_ Unknown_03 : 273|8@1+ (1,0) [0|7] "" XXX + SG_ SET_ME_0X6A : 273|8@1+ (1,0) [0|7] "" XXX SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX SG_ Lead_Distance : 290|10@1+ (0.2,0) [0|7] "Unit_Meter" XXX SG_ ACC_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX @@ -1677,7 +1688,7 @@ BO_ 333 MEB_ACC_02: 32 XXX SG_ ACC_AKTIV_regelt : 90|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 92|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X9 : 232|4@1+ (1,0) [0|15] "" XXX - SG_ Speed : 236|10@1+ (0.1,0) [0|15] "" XXX + SG_ Speed : 236|11@1+ (0.1,0) [0|15] "" XXX SG_ Accel_Boost : 248|6@1+ (1,0) [0|3] "" XXX SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX @@ -1691,6 +1702,18 @@ BO_ 619 MEB_Travel_Assist_01: 8 XXX SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX SG_ Travel_Assist_Available : 23|1@1+ (1,0) [0|1] "" XXX +BO_ 387 MEB_Camera_01: 64 XXX + SG_ NEW_SIGNAL_1 : 191|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 200|9@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 209|9@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_9 : 218|6@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_10 : 224|8@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_4 : 232|9@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 241|9@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_8 : 250|6@1+ (1,0) [0|63] "" XXX + SG_ Lane_Center_Offset : 256|12@1+ (0.001,-2.5) [0|255] "Unit_Meter" XXX + SG_ NEW_SIGNAL_6 : 268|12@1+ (1,0) [0|255] "" XXX + VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T"; From 73cabf5e0a3f094bf35fef9229291f6b071d1661 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:02:12 +0200 Subject: [PATCH 374/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 77 +++++++++++++++---------- 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index a0f8165dd49..f77b363d3f8 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -41,7 +41,6 @@ def __init__(self, dbc_name, CP): self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 - self.lat_active_prev = False self.steering_power = 0 self.long_heartbeat = 0 self.accel_last = 0 @@ -65,47 +64,29 @@ def update(self, CC, CS, now_nanos): # * keep it near maximum regarding speed to get full steering power in shortest time if CC.latActive: - hca_enabled = True - self.lat_active_prev = True + hca_enabled = True #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) # TODO verify sign (clockwise is negative) #apply_curvature = apply_meb_curvature_limits(actuators.curvature, self.apply_curvature_last, current_curvature, CS.out.vEgoRaw, self.CCP) - apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.CCP) - apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) - - # steering power as lazy counter - steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) - steering_angle_diff = abs(apply_angle - CS.out.steeringAngleDeg) - steering_power_target_angle = steering_power_min_by_speed + self.CCP.ANGLE_POWER_FACTOR * steering_angle_diff + abs(apply_angle) - steering_power_target = clip(steering_power_target_angle, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) - - if self.steering_power < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated - self.steering_power = min(self.steering_power + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) - - elif CS.out.steeringPressed and self.steering_power > self.CCP.STEERING_POWER_USER: # user action results in decreasing the steering power - self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_USER) - - elif self.steering_power < self.CCP.STEERING_POWER_MAX: # following desired target - if self.steering_power < steering_power_target: - self.steering_power = min(self.steering_power + self.CCP.STEERING_POWER_STEPS, steering_power_target) - elif self.steering_power > steering_power_target: - self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, steering_power_target) + apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.CCP) + apply_angle = clip(apply_angle, -self.CCP.ANGLE_MAX, self.CCP.ANGLE_MAX) + if CS.out.steeringPressed: + apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) + else: - if self.lat_active_prev and self.steering_power > 0: # monotonously decrement power to zero before disabling lane assist to prevent EPS fault + if self.steering_power > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) #apply_curvature = current_curvature - apply_angle = CS.out.steeringAngleDeg - self.steering_power = max(self.steering_power - self.CCP.STEERING_POWER_STEPS, 0) + apply_angle = CS.out.steeringAngleDeg # synchronize with current steering angle else: hca_enabled = False - self.lat_active_prev = False - self.steering_power = 0 #apply_curvature = 0. apply_angle = 0 + self.steering_power = self.generate_vw_meb_steering_power(CS, CC.latActive, apply_angle, self.steering_power) #self.apply_curvature_last = apply_curvature - self.apply_angle_last = clip(apply_angle, -self.CCP.ANGLE_MAX, self.CCP.ANGLE_MAX) + self.apply_angle_last = apply_angle can_sends.append(self.CCS.create_steering_control_curvature(self.packer_pt, CANBUS.pt, apply_angle, hca_enabled, self.steering_power)) else: @@ -250,8 +231,40 @@ def update(self, CC, CS, now_nanos): self.frame += 1 return new_actuators, can_sends - def generate_vw_meb_hud_heartbeat(self): - if self.long_heartbeat != 221: + def generate_vw_meb_hud_heartbeat(self, long_heartbeat_prev): + if long_heartbeat_prev != 221: return 221 - elif self.long_heartbeat == 221: + elif long_heartbeat_prev == 221: return 360 + + def generate_vw_meb_steering_power(self, CS, lat_active, apply_angle, steering_power_prev): + # Steering power counter is used to: + # * prevent sudden fluctuations at low speeds + # * avoid HCA refused + # * easy user intervention + # * keep it near maximum regarding speed to get full steering power in shortest time + if lat_active: + steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) + steering_angle_diff = abs(apply_angle - CS.out.steeringAngleDeg) + steering_power_target_angle = steering_power_min_by_speed + self.CCP.ANGLE_POWER_FACTOR * steering_angle_diff + abs(apply_angle) + steering_power_target = clip(steering_power_target_angle, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) + + if steering_power_prev < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated + steering_power = min(steering_power_prev + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + elif CS.out.steeringPressed and steering_power_prev > self.CCP.STEERING_POWER_MIN: # user action results in decreasing the steering power + steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + else: # following desired target + if steering_power_prev < steering_power_target: + steering_power = min(steering_power_prev + self.CCP.STEERING_POWER_STEPS, steering_power_target) + elif steering_power_prev > steering_power_target: + steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, steering_power_target) + else: + steering_power = steering_power_prev + + else: + if steering_power_prev > 0: # monotonously decrement power to zero before disabling lane assist to prevent EPS fault + steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, 0) + else: + steering_power = 0 + + return steering_power From 7d62a6d113ed76cb76d6af9a20f29abf89e634a3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:02:55 +0200 Subject: [PATCH 375/653] Update mebcan.py current state --- opendbc/car/volkswagen/mebcan.py | 68 ++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 30 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index e58983ed49b..849054bce8a 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,4 +1,4 @@ -from opendbc.car.common.numpy_fast import clip +from openpilot.common.numpy_fast import clip ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 @@ -17,7 +17,7 @@ ACC_HUD_DISABLED = 0 -def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): +def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): # active lateral control deactivates active steering wheel centering values = { #"Curvature": abs(apply_curvature) * 1000, # in 1/mm @@ -25,13 +25,13 @@ def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled "VZ": 1 if apply_curvature < 0 and lkas_enabled == 1 else 0, # > for curvature "Power": power if lkas_enabled else 0, "Active": lkas_enabled, - "Active_02": lkas_enabled, - "Inactive": not lkas_enabled, + "Request": lkas_enabled, + "Standby": not lkas_enabled, } return packer.make_can_msg("HCA_03", bus, values) -def create_steering_control(packer, bus, apply_steer, lkas_enabled): +def create_steering_boost_control(packer, bus, apply_steer, lkas_enabled): values = { "HCA_01_LM_Offset": abs(apply_steer), "HCA_01_Request": lkas_enabled, @@ -39,13 +39,14 @@ def create_steering_control(packer, bus, apply_steer, lkas_enabled): "HCA_01_Enable": lkas_enabled, "HCA_01_Standby": not lkas_enabled, "HCA_01_Available": 1, + "HCA_01_Vib_Freq": 3, } return packer.make_can_msg("HCA_01", bus, values) def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active - + values = {} if len(ldw_stock_values): values = {s: ldw_stock_values[s] for s in [ @@ -65,9 +66,9 @@ def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_p "LDW_Texte": hud_alert, }) return packer.make_can_msg("LDW_02", bus, values) - -def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resume=False): + +def create_acc_buttons_control(packer, bus, gra_stock_values, frame=0, buttons=0, cancel=False, resume=False, custom_stock_long=False): values = {s: gra_stock_values[s] for s in [ "GRA_Hauptschalter", # ACC button, on/off "GRA_Typ_Hauptschalter", # ACC main button type @@ -76,13 +77,22 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu "GRA_ButtonTypeInfo", # unknown related to stalk type ]} + accel_cruise = 1 if buttons == 1 else 0 + decel_cruise = 1 if buttons == 2 else 0 + resume_cruise = 1 if buttons == 3 else 0 + set_cruise = 1 if buttons == 4 else 0 + values.update({ - "COUNTER": (gra_stock_values["COUNTER"] + 1) % 16, + "COUNTER": (frame + 1) % 0x10 if custom_stock_long else (gra_stock_values["COUNTER"] + 1) % 16, "GRA_Abbrechen": cancel, - "GRA_Tip_Wiederaufnahme": resume, + "GRA_Tip_Wiederaufnahme": resume or resume_cruise, + "GRA_Tip_Setzen": set_cruise, + "GRA_Tip_Runter": decel_cruise, + "GRA_Tip_Hoch": accel_cruise, }) + return packer.make_can_msg("GRA_ACC_01", bus, values) - + def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): @@ -90,7 +100,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri acc_control = ACC_CTRL_ERROR # error state elif long_active: if override: - acc_control = ACC_CTRL_ACTIVE if esp_hold else ACC_CTRL_OVERRIDE # startup while overriding is a starting condition + acc_control = ACC_CTRL_OVERRIDE # overriding else: acc_control = ACC_CTRL_ACTIVE # active long control state elif main_switch_on: @@ -107,7 +117,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - acc_hold_type = ACC_HMS_RELEASE if esp_hold else ACC_HMS_NO_REQUEST + acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request elif starting: acc_hold_type = ACC_HMS_RELEASE # release request and startup elif stopping or esp_hold: @@ -118,13 +128,13 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing, travel_assist_available): # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism commands = [] if acc_enabled: if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 # override accel + acceleration = 0.00 else: acceleration = accel else: @@ -156,15 +166,16 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) - # satisfy car to prevent errors when pressing Travel Assist Button - # the button does nothing with this - values_ta = { - "Travel_Assist_Status": 2, # ready - "Travel_Assist_Request": 0, # no request - "Travel_Assist_Available": 1, # button is illuminated - } + if travel_assist_available: + # satisfy car to prevent errors when pressing Travel Assist Button + # testing effects of enabling this while acc enabled + values_ta = { + "Travel_Assist_Status": 4 if acc_enabled else 2, + "Travel_Assist_Request": 0, + "Travel_Assist_Available": 1, # button is illuminated + } - commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) + commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) return commands @@ -175,7 +186,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove acc_hud_control = ACC_HUD_ERROR # error state elif long_active: if override: - acc_hud_control = ACC_HUD_ACTIVE if esp_hold else ACC_HUD_OVERRIDE # startup while overriding is a starting condition and shown as default active + acc_hud_control = ACC_HUD_OVERRIDE # overriding else: acc_hud_control = ACC_HUD_ACTIVE # active elif main_switch_on: @@ -220,11 +231,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Enabled": 1 if acc_control == ACC_HUD_ACTIVE else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, - "ACC_Limiter_Mode": 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour - "Unknown_03": 106, # prevents errors - "Unknown_01": 0, # prevents errors - "Unknown_08": 0, # prevents errors "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 @@ -233,8 +240,9 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 "ACC_Anzeige_Zeitluecke": change_distance_bar if acc_control != ACC_HUD_DISABLED else 0, # show distance bar selection "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap - "SET_ME_0X1": 0x1, # unknown - "SET_ME_0X3FF": 0x3FF, # unknown + "SET_ME_0X1": 0x1, # unknown + "SET_ME_0X6A": 0x6A, # unknown + "SET_ME_0X3FF": 0x3FF, # unknown "SET_ME_0XFFFF": 0xFFFF, # unknown "SET_ME_0X7FFF": 0x7FFF, # unknown } From 48060b7d3a3247e489f69efd0d2110ea322a5e47 Mon Sep 17 00:00:00 2001 From: infiniteCable2 Date: Tue, 1 Oct 2024 18:04:16 +0200 Subject: [PATCH 376/653] Revert "Update mebcan.py current state" This reverts commit 7d62a6d113ed76cb76d6af9a20f29abf89e634a3. --- opendbc/car/volkswagen/mebcan.py | 68 ++++++++++++++------------------ 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 849054bce8a..e58983ed49b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,4 +1,4 @@ -from openpilot.common.numpy_fast import clip +from opendbc.car.common.numpy_fast import clip ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 @@ -17,7 +17,7 @@ ACC_HUD_DISABLED = 0 -def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): +def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): # active lateral control deactivates active steering wheel centering values = { #"Curvature": abs(apply_curvature) * 1000, # in 1/mm @@ -25,13 +25,13 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): "VZ": 1 if apply_curvature < 0 and lkas_enabled == 1 else 0, # > for curvature "Power": power if lkas_enabled else 0, "Active": lkas_enabled, - "Request": lkas_enabled, - "Standby": not lkas_enabled, + "Active_02": lkas_enabled, + "Inactive": not lkas_enabled, } return packer.make_can_msg("HCA_03", bus, values) -def create_steering_boost_control(packer, bus, apply_steer, lkas_enabled): +def create_steering_control(packer, bus, apply_steer, lkas_enabled): values = { "HCA_01_LM_Offset": abs(apply_steer), "HCA_01_Request": lkas_enabled, @@ -39,14 +39,13 @@ def create_steering_boost_control(packer, bus, apply_steer, lkas_enabled): "HCA_01_Enable": lkas_enabled, "HCA_01_Standby": not lkas_enabled, "HCA_01_Available": 1, - "HCA_01_Vib_Freq": 3, } return packer.make_can_msg("HCA_01", bus, values) def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active - + values = {} if len(ldw_stock_values): values = {s: ldw_stock_values[s] for s in [ @@ -66,9 +65,9 @@ def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_p "LDW_Texte": hud_alert, }) return packer.make_can_msg("LDW_02", bus, values) + - -def create_acc_buttons_control(packer, bus, gra_stock_values, frame=0, buttons=0, cancel=False, resume=False, custom_stock_long=False): +def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resume=False): values = {s: gra_stock_values[s] for s in [ "GRA_Hauptschalter", # ACC button, on/off "GRA_Typ_Hauptschalter", # ACC main button type @@ -77,22 +76,13 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, frame=0, buttons=0 "GRA_ButtonTypeInfo", # unknown related to stalk type ]} - accel_cruise = 1 if buttons == 1 else 0 - decel_cruise = 1 if buttons == 2 else 0 - resume_cruise = 1 if buttons == 3 else 0 - set_cruise = 1 if buttons == 4 else 0 - values.update({ - "COUNTER": (frame + 1) % 0x10 if custom_stock_long else (gra_stock_values["COUNTER"] + 1) % 16, + "COUNTER": (gra_stock_values["COUNTER"] + 1) % 16, "GRA_Abbrechen": cancel, - "GRA_Tip_Wiederaufnahme": resume or resume_cruise, - "GRA_Tip_Setzen": set_cruise, - "GRA_Tip_Runter": decel_cruise, - "GRA_Tip_Hoch": accel_cruise, + "GRA_Tip_Wiederaufnahme": resume, }) - return packer.make_can_msg("GRA_ACC_01", bus, values) - + def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): @@ -100,7 +90,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri acc_control = ACC_CTRL_ERROR # error state elif long_active: if override: - acc_control = ACC_CTRL_OVERRIDE # overriding + acc_control = ACC_CTRL_ACTIVE if esp_hold else ACC_CTRL_OVERRIDE # startup while overriding is a starting condition else: acc_control = ACC_CTRL_ACTIVE # active long control state elif main_switch_on: @@ -117,7 +107,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request + acc_hold_type = ACC_HMS_RELEASE if esp_hold else ACC_HMS_NO_REQUEST elif starting: acc_hold_type = ACC_HMS_RELEASE # release request and startup elif stopping or esp_hold: @@ -128,13 +118,13 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing, travel_assist_available): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism commands = [] if acc_enabled: if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 + acceleration = 0.00 # override accel else: acceleration = accel else: @@ -166,16 +156,15 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) - if travel_assist_available: - # satisfy car to prevent errors when pressing Travel Assist Button - # testing effects of enabling this while acc enabled - values_ta = { - "Travel_Assist_Status": 4 if acc_enabled else 2, - "Travel_Assist_Request": 0, - "Travel_Assist_Available": 1, # button is illuminated - } + # satisfy car to prevent errors when pressing Travel Assist Button + # the button does nothing with this + values_ta = { + "Travel_Assist_Status": 2, # ready + "Travel_Assist_Request": 0, # no request + "Travel_Assist_Available": 1, # button is illuminated + } - commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) + commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) return commands @@ -186,7 +175,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove acc_hud_control = ACC_HUD_ERROR # error state elif long_active: if override: - acc_hud_control = ACC_HUD_OVERRIDE # overriding + acc_hud_control = ACC_HUD_ACTIVE if esp_hold else ACC_HUD_OVERRIDE # startup while overriding is a starting condition and shown as default active else: acc_hud_control = ACC_HUD_ACTIVE # active elif main_switch_on: @@ -231,7 +220,11 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Enabled": 1 if acc_control == ACC_HUD_ACTIVE else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, + "ACC_Limiter_Mode": 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour + "Unknown_03": 106, # prevents errors + "Unknown_01": 0, # prevents errors + "Unknown_08": 0, # prevents errors "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 @@ -240,9 +233,8 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 "ACC_Anzeige_Zeitluecke": change_distance_bar if acc_control != ACC_HUD_DISABLED else 0, # show distance bar selection "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap - "SET_ME_0X1": 0x1, # unknown - "SET_ME_0X6A": 0x6A, # unknown - "SET_ME_0X3FF": 0x3FF, # unknown + "SET_ME_0X1": 0x1, # unknown + "SET_ME_0X3FF": 0x3FF, # unknown "SET_ME_0XFFFF": 0xFFFF, # unknown "SET_ME_0X7FFF": 0x7FFF, # unknown } From 3948ca811e5fc837465b4cb2c3e508397c3a826f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:07:48 +0200 Subject: [PATCH 377/653] Update mebcan.py current state --- opendbc/car/volkswagen/mebcan.py | 55 ++++++++++++-------------------- 1 file changed, 21 insertions(+), 34 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index e58983ed49b..b4e884cadab 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -17,7 +17,7 @@ ACC_HUD_DISABLED = 0 -def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled, power): +def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): # active lateral control deactivates active steering wheel centering values = { #"Curvature": abs(apply_curvature) * 1000, # in 1/mm @@ -25,24 +25,12 @@ def create_steering_control_curvature(packer, bus, apply_curvature, lkas_enabled "VZ": 1 if apply_curvature < 0 and lkas_enabled == 1 else 0, # > for curvature "Power": power if lkas_enabled else 0, "Active": lkas_enabled, - "Active_02": lkas_enabled, - "Inactive": not lkas_enabled, + "Request": lkas_enabled, + "Standby": not lkas_enabled, } return packer.make_can_msg("HCA_03", bus, values) -def create_steering_control(packer, bus, apply_steer, lkas_enabled): - values = { - "HCA_01_LM_Offset": abs(apply_steer), - "HCA_01_Request": lkas_enabled, - "HCA_01_LM_OffSign": 1 if apply_steer < 0 and lkas_enabled == 1 else 0, - "HCA_01_Enable": lkas_enabled, - "HCA_01_Standby": not lkas_enabled, - "HCA_01_Available": 1, - } - return packer.make_can_msg("HCA_01", bus, values) - - def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active @@ -90,7 +78,7 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri acc_control = ACC_CTRL_ERROR # error state elif long_active: if override: - acc_control = ACC_CTRL_ACTIVE if esp_hold else ACC_CTRL_OVERRIDE # startup while overriding is a starting condition + acc_control = ACC_CTRL_OVERRIDE # overriding else: acc_control = ACC_CTRL_ACTIVE # active long control state elif main_switch_on: @@ -107,7 +95,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - acc_hold_type = ACC_HMS_RELEASE if esp_hold else ACC_HMS_NO_REQUEST + acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request elif starting: acc_hold_type = ACC_HMS_RELEASE # release request and startup elif stopping or esp_hold: @@ -118,13 +106,13 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing, travel_assist_available): # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism commands = [] if acc_enabled: if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 # override accel + acceleration = 0.00 else: acceleration = accel else: @@ -156,15 +144,16 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) - # satisfy car to prevent errors when pressing Travel Assist Button - # the button does nothing with this - values_ta = { - "Travel_Assist_Status": 2, # ready - "Travel_Assist_Request": 0, # no request - "Travel_Assist_Available": 1, # button is illuminated - } + if travel_assist_available: + # satisfy car to prevent errors when pressing Travel Assist Button + # testing effects of enabling this while acc enabled + values_ta = { + "Travel_Assist_Status": 4 if acc_enabled else 2, + "Travel_Assist_Request": 0, + "Travel_Assist_Available": 1, # button is illuminated + } - commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) + commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) return commands @@ -175,7 +164,7 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove acc_hud_control = ACC_HUD_ERROR # error state elif long_active: if override: - acc_hud_control = ACC_HUD_ACTIVE if esp_hold else ACC_HUD_OVERRIDE # startup while overriding is a starting condition and shown as default active + acc_hud_control = ACC_HUD_OVERRIDE # overriding else: acc_hud_control = ACC_HUD_ACTIVE # active elif main_switch_on: @@ -203,6 +192,7 @@ def get_desired_gap(distance_bars, desired_gap): return gap + def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, change_distance_bar, desired_gap, distance, heartbeat, esp_hold): values = { @@ -220,11 +210,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Enabled": 1 if acc_control == ACC_HUD_ACTIVE else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, - "ACC_Limiter_Mode": 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour - "Unknown_03": 106, # prevents errors - "Unknown_01": 0, # prevents errors - "Unknown_08": 0, # prevents errors "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 @@ -233,8 +219,9 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 "ACC_Anzeige_Zeitluecke": change_distance_bar if acc_control != ACC_HUD_DISABLED else 0, # show distance bar selection "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap - "SET_ME_0X1": 0x1, # unknown - "SET_ME_0X3FF": 0x3FF, # unknown + "SET_ME_0X1": 0x1, # unknown + "SET_ME_0X6A": 0x6A, # unknown + "SET_ME_0X3FF": 0x3FF, # unknown "SET_ME_0XFFFF": 0xFFFF, # unknown "SET_ME_0X7FFF": 0x7FFF, # unknown } From 8a3a9219a4cf00e7f4e7ba2d05f506572a10605b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:13:02 +0200 Subject: [PATCH 378/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index f77b363d3f8..41a49b000c4 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -87,7 +87,7 @@ def update(self, CC, CS, now_nanos): self.steering_power = self.generate_vw_meb_steering_power(CS, CC.latActive, apply_angle, self.steering_power) #self.apply_curvature_last = apply_curvature self.apply_angle_last = apply_angle - can_sends.append(self.CCS.create_steering_control_curvature(self.packer_pt, CANBUS.pt, apply_angle, hca_enabled, self.steering_power)) + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_angle, hca_enabled, self.steering_power)) else: # Logic to avoid HCA state 4 "refused": @@ -143,9 +143,9 @@ def update(self, CC, CS, now_nanos): current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, CC.cruiseControl.override) + CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override) + starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune lower_jerk = required_jerk upper_jerk = required_jerk @@ -157,7 +157,8 @@ def update(self, CC, CS, now_nanos): can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, - CS.esp_hold_confirmation, CC.cruiseControl.override, current_speed, reversing)) + CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed, + current_speed, reversing, CS.travel_assist_available)) else: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 @@ -187,7 +188,7 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - self.long_heartbeat = self.generate_vw_meb_hud_heartbeat() + self.long_heartbeat = self.generate_vw_meb_hud_heartbeat(self.long_heartbeat) desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 #min(self.lead_distance, 100) @@ -198,7 +199,7 @@ def update(self, CC, CS, now_nanos): change_distance_bar = True if self.lead_distance_bar_timer <= 3 else False acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, CC.cruiseControl.override) + CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, change_distance_bar, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From 0b063a5d6469ff95175937f16ef3b8c5977bd59a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:15:12 +0200 Subject: [PATCH 379/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 213021c613c..aec1ffa8bde 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -320,6 +320,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] + self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) @@ -515,10 +516,11 @@ def get_can_parser_meb(CP): def get_cam_can_parser_meb(CP): messages = [ # sig_address, frequency - ("LDW_02", 10), # From R242 Driver assistance camera - ("MEB_ACC_01", 17), # - ("MEB_ACC_02", 50), # - ("MEB_Side_Assist_01", 20), # + ("LDW_02", 10), # From R242 Driver assistance camera + ("MEB_ACC_01", 17), # + ("MEB_ACC_02", 50), # + ("MEB_Side_Assist_01", 20), # + ("MEB_Travel_Assist_01", 10), # #("MEB_Distance_01", 25), # ] return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) From b28ed702dbb3a0ec5d0ec45d49fd9ea15a3f0de4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:17:55 +0200 Subject: [PATCH 380/653] Update values.py --- opendbc/car/volkswagen/values.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 356b01fca6f..b0a50a0af65 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -76,18 +76,17 @@ def __init__(self, CP): self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.8 Nm self.STEERING_POWER_MAX = 127 # HCA_03 maximum steering power - self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power - self.STEERING_POWER_USER = 60 # HCA_03 desired steering power for user intervention - self.STEERING_POWER_STEPS = 5 # HCA_03 steering power counter steps + self.STEERING_POWER_MIN = 60 # HCA_03 minimum steering power + self.STEERING_POWER_STEPS = 10 # HCA_03 steering power counter steps self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached #self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m, we estimate that about 0.2 1/m is max of signal #self.CURVATURE_ERROR = 0.01 # HCA_03 curvature error, yaw rate error at standstill in range of about 0.2 deg/sec #self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.004, 0.002, 0.001]) # curvature safety limit up #self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.005, 0.0025, 0.0015]) # curvature safety limit down self.ANGLE_ERROR = 20 # HCA_03 maximum difference from steering angle - self.ANGLE_MAX = 360 # HCA_03 maximum angle - self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 6., 15.], angle_v=[12., 10.0, 0.6]) - self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 6., 15.], angle_v=[12., 11.0, 0.8]) + self.ANGLE_MAX = 360 # HCA_03 maximum angle, max for HCA_03 ~ 420 deg + self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[12., 4., 0.4]) # max for HCA_03 ~ 120-130 deg/s + self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[12., 8., 0.8]) self.ANGLE_POWER_FACTOR = 4 @@ -219,7 +218,7 @@ def init(self): @dataclass(frozen=True, kw_only=True) class VolkswagenCarSpecs(CarSpecs): centerToFrontRatio: float = 0.45 - steerRatio: float = 15.6 + steerRatio: float = 15 #15.6 minSteerSpeed: float = CarControllerParams.DEFAULT_MIN_STEER_SPEED From 6eda8e635d718fcab7421939f9d73a1ed1ad3083 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 1 Oct 2024 18:30:00 +0200 Subject: [PATCH 381/653] Update radar_interface.py --- opendbc/car/volkswagen/radar_interface.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index b7e83e74d2c..30572a858fa 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -67,10 +67,10 @@ def _update(self, updated_messages): self.pts[signal_part].trackId = self.track_id self.track_id += 1 - valid = msg['Same_Lane_01_LD_neg_Offset'] > 0 + valid = msg['Same_Lane_01_LD_Offset'] != -5 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] - msg['Same_Lane_01_LD_neg_Offset'] + self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] + msg['Same_Lane_01_LD_Offset'] self.pts[signal_part].yRel = -msg['Same_Lane_01_Lat_Distance'] # left is positive self.pts[signal_part].vRel = msg['Same_Lane_01_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') @@ -86,10 +86,10 @@ def _update(self, updated_messages): self.pts[signal_part].trackId = self.track_id self.track_id += 1 - valid = msg['Same_Lane_02_LD_neg_Offset'] > 0 + valid = msg['Same_Lane_02_LD_Offset'] != -5 if valid: self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] - msg['Same_Lane_02_LD_neg_Offset'] + self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] + msg['Same_Lane_02_LD_Offset'] self.pts[signal_part].yRel = -msg['Same_Lane_02_Lat_Distance'] self.pts[signal_part].vRel = msg['Same_Lane_02_Rel_Velo'] * CV.KPH_TO_MS self.pts[signal_part].aRel = float('nan') From 0e9370dbf755d5b47490c1ae6c5178ba82782328 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:38:50 +0200 Subject: [PATCH 382/653] Update interface.py bsm enablement --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 0e9792f161d..884a3a26e64 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -36,7 +36,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp elif ret.flags & VolkswagenFlags.MEB: # TODO # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] - ret.enableBsm = True + ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle ret.radarUnavailable = False From b5cdc71873bcbff6f8ccad7987edb5c9799a7cbf Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 3 Oct 2024 15:51:21 +0200 Subject: [PATCH 383/653] Update carstate.py correct signal parser assignment --- opendbc/car/volkswagen/carstate.py | 49 ++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index aec1ffa8bde..1f1722e86c9 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -314,7 +314,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller - self.ldw_stock_values = cam_cp.vl["LDW_02"] + self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} ret.stockFcw = bool(pt_cp.vl["MEB_ESP_05"]["FCW_Active"]) ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) @@ -331,7 +331,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) else: # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = False # TODO + ret.cruiseState.nonAdaptive = ext_cp.vl["MEB_ACC_01"]["ACC_Gesetzte_Zeitluecke"] == 0 ret.accFaulted = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (6, 7) @@ -342,7 +342,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # radar sends a set-speed of ~90.69 m/s / 203mph. if self.CP.pcmCruise: ret.cruiseState.speed = int(round(ext_cp.vl["MEB_ACC_01"]["ACC_Wunschgeschw_02"])) * CV.KPH_TO_MS - if ret.cruiseState.speed > 50: # settable maximum 180km/h + if ret.cruiseState.speed > 90: ret.cruiseState.speed = 0 # Update button states for turn signals and ACC controls, capture all ACC button state/config for passthrough @@ -510,19 +510,31 @@ def get_can_parser_meb(CP): ("MEB_Light_01", 5), # ("MEB_Motor_01", 50), # ] + + if CP.networkLocation == NetworkLocation.fwdCamera: + # Radars are here on CANBUS.pt + messages += MebExtraSignals.fwd_radar_messages + if CP.enableBsm: + messages += MebExtraSignals.bsm_radar_messages + return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.pt) @staticmethod def get_cam_can_parser_meb(CP): - messages = [ - # sig_address, frequency - ("LDW_02", 10), # From R242 Driver assistance camera - ("MEB_ACC_01", 17), # - ("MEB_ACC_02", 50), # - ("MEB_Side_Assist_01", 20), # - ("MEB_Travel_Assist_01", 10), # - #("MEB_Distance_01", 25), # - ] + + messages = [] + + if CP.networkLocation == NetworkLocation.fwdCamera: + messages += [ + # sig_address, frequency + ("LDW_02", 10) # From R242 Driver assistance camera + ] + else: + # Radars are here on CANBUS.cam + messages += MebExtraSignals.fwd_radar_messages + if CP.enableBsm: + messages += MebExtraSignals.bsm_radar_messages + return CANParser(DBC[CP.carFingerprint]["pt"], messages, CANBUS.cam) @@ -547,3 +559,16 @@ class PqExtraSignals: bsm_radar_messages = [ ("SWA_1", 20), # From J1086 Lane Change Assist ] + + +class MebExtraSignals: + # Additional signal and message lists for optional or bus-portable controllers + fwd_radar_messages = [ + ("MEB_ACC_01", 17), # + ("MEB_ACC_02", 50), # + ("MEB_Travel_Assist_01", 10), # + #("MEB_Distance_01", 25), # + ] + bsm_radar_messages = [ + ("MEB_Side_Assist_01", 20), + ] From 1d4e6f25926153c49f64f32a5ed100fa0c60a46c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 14 Oct 2024 17:19:50 +0200 Subject: [PATCH 384/653] Update structs.py --- opendbc/car/structs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/structs.py b/opendbc/car/structs.py index e405831b09c..d5f1001a12a 100644 --- a/opendbc/car/structs.py +++ b/opendbc/car/structs.py @@ -440,7 +440,6 @@ class SafetyModel(StrEnum): psa = auto() volkswagenMeb = auto() fcaGiorgio = auto() - volkswagenMeb = auto() class SteerControlType(StrEnum): torque = auto() From e90144723b8469752f32392bcf95458b9dee4d00 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 21 Oct 2024 17:06:26 +0200 Subject: [PATCH 385/653] Update radar_interface.py optimization, use all radar signal parts --- opendbc/car/volkswagen/radar_interface.py | 85 ++++++++++------------- 1 file changed, 36 insertions(+), 49 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 30572a858fa..16c5fd1da1a 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -5,10 +5,11 @@ from opendbc.car.interfaces import RadarInterfaceBase from opendbc.car.common.conversions import Conversions as CV from opendbc.car.volkswagen.values import DBC, VolkswagenFlags +from collections import defaultdict RADAR_ADDR = 0x24F -RADAR_SAME_LANE_01 = 1 -RADAR_SAME_LANE_02 = 2 +NO_OBJECT = -5 +LANE_TYPES = ['Same_Lane', 'Left_Lane', 'Right_Lane'] # info: distance signals can move without physical distance change ... @@ -27,6 +28,7 @@ def __init__(self, CP): self.updated_messages = set() self.trigger_msg = RADAR_ADDR self.track_id = 0 + self.previous_offsets = defaultdict(lambda: NO_OBJECT) self.radar_off_can = CP.radarUnavailable self.rcp = get_radar_can_parser(CP) @@ -48,57 +50,42 @@ def update(self, can_strings): def _update(self, updated_messages): ret = structs.RadarData() - if self.rcp is None: - return ret - - errors = [] - if not self.rcp.can_valid: - errors.append("canError") - ret.errors = errors + if self.rcp is None or not self.rcp.can_valid: + ret.errors = ["canError"] + return ret msg = self.rcp.vl["MEB_Distance_01"] - # ---------------------------------- # - - signal_part = RADAR_SAME_LANE_01 - if signal_part not in self.pts: - self.pts[signal_part] = structs.RadarData.RadarPoint() - self.pts[signal_part].trackId = self.track_id - self.track_id += 1 - - valid = msg['Same_Lane_01_LD_Offset'] != -5 - if valid: - self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_01_Long_Distance'] + msg['Same_Lane_01_LD_Offset'] - self.pts[signal_part].yRel = -msg['Same_Lane_01_Lat_Distance'] # left is positive - self.pts[signal_part].vRel = msg['Same_Lane_01_Rel_Velo'] * CV.KPH_TO_MS - self.pts[signal_part].aRel = float('nan') - self.pts[signal_part].yvRel = float('nan') - else: - del self.pts[signal_part] - - # ---------------------------------- # - - signal_part = RADAR_SAME_LANE_02 - if signal_part not in self.pts: - self.pts[signal_part] = structs.RadarData.RadarPoint() - self.pts[signal_part].trackId = self.track_id - self.track_id += 1 - - valid = msg['Same_Lane_02_LD_Offset'] != -5 - if valid: - self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg['Same_Lane_02_Long_Distance'] + msg['Same_Lane_02_LD_Offset'] - self.pts[signal_part].yRel = -msg['Same_Lane_02_Lat_Distance'] - self.pts[signal_part].vRel = msg['Same_Lane_02_Rel_Velo'] * CV.KPH_TO_MS - self.pts[signal_part].aRel = float('nan') - self.pts[signal_part].yvRel = float('nan') - else: - del self.pts[signal_part] - - # ---------------------------------- # + # Iterate over lane types and dynamic signal parts (01, 02) + for lane_type in LANE_TYPES: + for idx in range(1, 3): + signal_part = f'{lane_type}_0{idx}' + long_distance = f'{signal_part}_Long_Distance' + ld_offset = f'{signal_part}_LD_Offset' + lat_distance = f'{signal_part}_Lat_Distance' + rel_velo = f'{signal_part}_Rel_Velo' + + current_offset = msg[ld_offset] + + if signal_part not in self.pts: + self.pts[signal_part] = structs.RadarData.RadarPoint() + self.pts[signal_part].trackId = self.track_id + self.track_id += 1 + + # offset changes occur when another object is detected + # this skips a frame of data + if current_offset != NO_OBJECT and current_offset == self.previous_offsets[signal_part]: + self.pts[signal_part].measured = True + self.pts[signal_part].dRel = msg[long_distance] + current_offset + self.pts[signal_part].yRel = msg[lat_distance] + self.pts[signal_part].vRel = msg[rel_velo] * CV.KPH_TO_MS + self.pts[signal_part].aRel = float('nan') + self.pts[signal_part].yvRel = float('nan') + else: + self.pts.pop(signal_part, None) + + self.previous_offsets[signal_part] = current_offset ret.points = list(self.pts.values()) return ret - From 49e1d0e868ede9532a5da129eb130ae3402346c9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 21 Oct 2024 17:07:22 +0200 Subject: [PATCH 386/653] Update vw_meb.dbc current state --- opendbc/dbc/vw_meb.dbc | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 2bf5bded172..b9872854699 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1804,6 +1804,53 @@ VAL_ 768 ACC_Zeitluecke_Farbe 0 "white" 1 "yellow"; VAL_ 267 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 1124 PSD_06_Mux 0 "Init" ; +VAL_ 1124 PSD_Sys_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig" ; +VAL_ 1124 PSD_Attribut_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; +VAL_ 1124 PSD_Ges_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig" ; +VAL_ 1124 PSD_Baum_Laenge_VZ 0 "Ost" 1 "West" ; +VAL_ 1124 PSD_Steigung_1_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; +VAL_ 1124 PSD_Baum_Laenge 33554431 "keine_GPS_Information" ; +VAL_ 1124 PSD_Attribut_3_ID 0 "keine_Information" ; +VAL_ 1124 PSD_Steigung_1_A_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit 0 "Kein Geschwindigkeitsgebot" 1 "0 km/h < v_max < 5 km/h" 2 "5 km/h < v_max < 10km/h" 3 "10 km/h < v_max < 15 km/h" 4 "15 km/h < v_max < 20 km/h" 5 "20 km/h < v_max < 25 km/h" 6 "25 km/h < v_max < 30 km/h" 7 "30 km/h < v_max < 35 km/h" 8 "35 km/h < v_max < 40 km/h" 9 "40 km/h < v_max < 45 km/h" 10 "45 km/h < v_max < 50 km/h" 11 "50 km/h < v_max < 60 km/h" 12 "60 km/h < v_max < 70 km/h" 13 "70 km/h < v_max < 80 km/h" 14 "80 km/h < v_max < 90 km/h" 15 "90 km/h < v_max < 100 km/h" 16 "100 km/h < v_max < 110 km/h" 17 "110 km/h < v_max < 120 km/h" 18 " 120 km/h < v_max < 130 km/h" 19 "130 km/h < v_max < 140 km/h" 20 "140 km/h < v_max < 150 km/h" 21 "150 km/h < v_max < 160 km/h" 22 "160 km/h < v_max" 23 "Geschwindigkeitsgebot aufgehoben" 24 "..0x1F ung�ltig" ; +VAL_ 1124 PSD_Steigung_1_A_Vorz 0 "Gefaelle" 1 "Steigung" ; +VAL_ 1124 PSD_Sys_Geschwindigkeit_Einheit 0 "km/h" 1 "mph" ; +VAL_ 1124 PSD_Sys_Verkehrsrichtung 0 "Rechtsverkehr" 1 "Linksverkehr" ; +VAL_ 1124 PSD_Sys_Geometrieguete 0 "Geringe_Guete" 1 "tbd" 2 "tbd" 3 "Hohe_Guete" ; +VAL_ 1124 PSD_Sys_Mapmatchingguete 0 "geringe_Guete" 1 "res" 2 "res" 3 "hohe_Guete" ; +VAL_ 1124 PSD_Ges_Typ 0 "Geschw_Klasse_des_Kartendatensuppliers" 1 "Explizit_abgeleiteten_Begrenzung" 2 "Durch_Gesetzg_vorgeg_allgem_Gebot_fuer_uebertr_Rahmenbed" 3 "Init" ; +VAL_ 1124 PSD_Sys_Alter_Karte 0 "kleiner_1_Jahr" 1 "1_Jahr" 2 "2_Jahre" 3 "3_Jahre" 4 "4_Jahre" 5 "5_Jahre" 6 "6_Jahre" 7 "groesser_7_Jahre" ; +VAL_ 1124 PSD_Ges_Spur_Geschw_Begrenzung 0 "Gebot_fuer_alle_spuren_gueltig" ; +VAL_ 1124 PSD_Steigung_1_B_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; +VAL_ 1124 PSD_Attribut_4_ID 0 "keine_Information" ; +VAL_ 1124 PSD_Sys_Zielfuehrung 0 "Zielfuehrung nicht aktiv" 1 "Zielfuehrung aktiv" ; +VAL_ 1124 PSD_Sys_US_State 0 "kein_US_State" 1 "Alabama" 2 "Alaska" 3 "Arkansas" 4 "Arizona" 5 "California" 6 "Colorado" 7 "Conneticut" 8 "District_of_Columbia" 9 "Delaware" 10 "Florida" 11 "Georgia" 12 "Hawaii" 13 "Idaho" 14 "Illinois" 15 "Iowa" 16 "Indiana" 17 "Kansas" 18 "Kentucky" 19 "Louisiana" 20 "Massachusetts" 21 "Maryland" 22 "Maine" 23 "Michigan" 24 "Minnesota" 25 "Missouri" 26 "Mississippi" 27 "Montana" 28 "North_Carolina" 29 "North_Dakota" 30 "Nebraska" 31 "Nevada" 32 "New_Hampshire" 33 "New_Jersey" 34 "New_Mexico" 35 "New_York" 36 "Ohio" 37 "Oklahoma" 38 "Oregon" 39 "Pennsylvania" 40 "Puerto_Rico" 41 "Rhode_Island" 42 "South_Carolina" 43 "South_Dakota" 44 "Tennessee" 45 "Texas" 46 "Utah" 47 "Virginia" 48 "Virgin_Islands" 49 "Vermont" 50 "Washington" 51 "Wisconsin" 52 "West_Virginia" 53 "Wyoming" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Gespann 0 "alle Fahrzeuge" 1 "PKW mit Gespann" 2 "LKW, Busse, etc." ; +VAL_ 1124 PSD_Baum_Breite_VZ 0 "Nord" 1 "Sued" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Witter 0 "Witterungsunabh�ngig" 1 "N�sse, Regen, Niederschlag" 2 "Gl�tte" 3 "Nebel" ; +VAL_ 1124 PSD_Steigung_1_B_Vorz 0 "Gefaelle" 1 "Steigung" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Anf 0 "kein Beginn definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Ende 0 "kein Ende definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag" ; +VAL_ 1124 PSD_Sys_Quali_verfuegbar 0 "Qualitaetskriterien_nicht_verfuegbar" 1 "Qualitaetskriterien_verfuegbar" ; +VAL_ 1124 PSD_Sys_Zielfuehrung_geaendert 0 "Zielfuehrung_nicht_geaendert" 1 "Zielfuehrung_geaendert" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Anf 25 "kein Beginn f�r stundenweise Einschr�nkungen" ; +VAL_ 1124 PSD_Steigung_1_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett" ; +VAL_ 1124 PSD_Sys_Geometrieguete_erweitert 0 "Init" ; +VAL_ 1124 PSD_Steigung_2_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; +VAL_ 1124 PSD_Attribut_5_ID 0 "keine_Information" ; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Ende 25 "kein Ende f�r stundenweise Einschr�nkungen" ; +VAL_ 1124 PSD_Steigung_2_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; +VAL_ 1124 PSD_Ges_Ueberholverbot 0 "kein �berholverbot" 1 "alle Fahrzeuge" 2 "�berholverbot f�r PKW mit Gespann" 3 "�berholverbot f�r LKW, Busse, etc." ; +VAL_ 1124 PSD_Ges_Wechselverkehrszeichen 0 "Kein Wechselverkehrszeichen" 1 "Wechselverkehrszeichen links" 2 "Wechselverkehrszeichen rechts" 3 "Wechselverkehrszeichen links und rechts" 4 "Wechselverkerhszeichen �ber der Fahrbahn" ; +VAL_ 1124 PSD_Steigung_2_Vorz 0 "Gefaelle" 1 "Steigung" ; +VAL_ 1124 PSD_Wechselverkehrszeichen_Typ 0 "kein_Wechselverkehrszeichen" 1 "LED_Wechselverkehrszeichen" 2 "nicht_LED_Wechselverkehrszeichen" ; +VAL_ 1124 PSD_Ges_Gesetzlich_Kategorie 0 "kein_legales_Verbot" 1 "innerorts" 2 "ausserorts" 3 "Autobahn" ; +VAL_ 1124 PSD_Attribute_Komplett_06 0 "Attribute_nicht_komplett" 1 "Attribute_komplett" ; +VAL_ 1124 PSD_Ges_Gesetzlich_Zusatz 0 "kein_Zusatz_zu_legalem_Gebot" 1 "Anhaenger_Klasse_1" 2 "Anhaenger_Klasse_2" ; +VAL_ 1124 PSD_Ges_Verkehrszeichen_Quelle 0 "VZA_kein_Onlinedienst" 1 "nur_VZA" 2 "nur_VZO" 3 "VZA_und_VZO" ; +VAL_ 1124 PSD_Steigung_2_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett" ; +VAL_ 1124 PSD_Ges_Attribute_Komplett 0 "Attribute_nicht_komplett" 1 "Attribute_komplett" ; VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; VAL_ 1631 TSK_QBit_Fahrzeugmasse 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; VAL_ 1631 MO_SpannungsAnf_02 0 "keine_Anforderung" 1 "Anforderung_Stufe_1" 2 "Anforderung_Stufe_2" 3 "Anforderung_Stufe_3" ; From bb3239d38ae217d03dafcb20a774b6b50b917025 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 22 Oct 2024 17:18:13 +0200 Subject: [PATCH 387/653] Update vw_meb.dbc adapt distance offsets --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index b9872854699..babfe9d6987 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1582,12 +1582,12 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX - SG_ Same_Lane_01_LD_Offset : 16|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX - SG_ Left_Lane_01_LD_Offset : 22|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX - SG_ Right_Lane_01_LD_Offset : 28|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX - SG_ Same_Lane_02_LD_Offset : 34|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX - SG_ Left_Lane_02_LD_Offset : 40|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX - SG_ Right_Lane_02_LD_Offset : 46|6@1+ (0.1,-5) [0|63] "Unit_Meter" XXX + SG_ Same_Lane_01_LD_Offset : 16|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Left_Lane_01_LD_Offset : 22|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Right_Lane_01_LD_Offset : 28|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Same_Lane_02_LD_Offset : 34|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Left_Lane_02_LD_Offset : 40|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Right_Lane_02_LD_Offset : 46|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX From f75712f7f3d71f9e505bcb986465403705b911ad Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:47:06 +0200 Subject: [PATCH 388/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index babfe9d6987..0f0fc1f2ebe 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1567,7 +1567,9 @@ BO_ 588 MEB_Side_Assist_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Pre_Warn_Right : 27|1@0+ (1,0) [0|1] "" XXX SG_ Blind_Spot_Warn_Left : 29|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Pre_Warn_Left : 30|1@0+ (1,0) [0|1] "" XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX @@ -1582,30 +1584,30 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX - SG_ Same_Lane_01_LD_Offset : 16|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX - SG_ Left_Lane_01_LD_Offset : 22|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX - SG_ Right_Lane_01_LD_Offset : 28|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX - SG_ Same_Lane_02_LD_Offset : 34|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX - SG_ Left_Lane_02_LD_Offset : 40|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX - SG_ Right_Lane_02_LD_Offset : 46|6@1+ (0.1,-6) [-6|0] "Unit_Meter" XXX + SG_ Same_Lane_01_ObjectID : 16|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Left_Lane_01_ObjectID : 22|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Right_Lane_01_ObjectID : 28|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Same_Lane_02_ObjectID : 34|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Left_Lane_02_ObjectID : 40|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,0) [0|3] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.06,0) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX From 2715a5f741f651e5402770d54fac705f9efa0074 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:50:29 +0200 Subject: [PATCH 389/653] Update radar_interface.py object based tracking --- opendbc/car/volkswagen/radar_interface.py | 62 +++++++++++++---------- 1 file changed, 35 insertions(+), 27 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 16c5fd1da1a..a1b8b5094c3 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -5,13 +5,11 @@ from opendbc.car.interfaces import RadarInterfaceBase from opendbc.car.common.conversions import Conversions as CV from opendbc.car.volkswagen.values import DBC, VolkswagenFlags -from collections import defaultdict RADAR_ADDR = 0x24F -NO_OBJECT = -5 +NO_OBJECT = 0 LANE_TYPES = ['Same_Lane', 'Left_Lane', 'Right_Lane'] -# info: distance signals can move without physical distance change ... def get_radar_can_parser(CP): if CP.flags & VolkswagenFlags.MEB: @@ -28,7 +26,6 @@ def __init__(self, CP): self.updated_messages = set() self.trigger_msg = RADAR_ADDR self.track_id = 0 - self.previous_offsets = defaultdict(lambda: NO_OBJECT) self.radar_off_can = CP.radarUnavailable self.rcp = get_radar_can_parser(CP) @@ -52,40 +49,51 @@ def _update(self, updated_messages): ret = structs.RadarData() if self.rcp is None or not self.rcp.can_valid: - ret.errors = ["canError"] - return ret + ret.errors = ["canError"] + return ret msg = self.rcp.vl["MEB_Distance_01"] - # Iterate over lane types and dynamic signal parts (01, 02) + active_objects = {} + for lane_type in LANE_TYPES: for idx in range(1, 3): signal_part = f'{lane_type}_0{idx}' long_distance = f'{signal_part}_Long_Distance' - ld_offset = f'{signal_part}_LD_Offset' + object_id = f'{signal_part}_ObjectID' lat_distance = f'{signal_part}_Lat_Distance' rel_velo = f'{signal_part}_Rel_Velo' - current_offset = msg[ld_offset] - - if signal_part not in self.pts: - self.pts[signal_part] = structs.RadarData.RadarPoint() - self.pts[signal_part].trackId = self.track_id - self.track_id += 1 - - # offset changes occur when another object is detected - # this skips a frame of data - if current_offset != NO_OBJECT and current_offset == self.previous_offsets[signal_part]: - self.pts[signal_part].measured = True - self.pts[signal_part].dRel = msg[long_distance] + current_offset - self.pts[signal_part].yRel = msg[lat_distance] - self.pts[signal_part].vRel = msg[rel_velo] * CV.KPH_TO_MS - self.pts[signal_part].aRel = float('nan') - self.pts[signal_part].yvRel = float('nan') - else: - self.pts.pop(signal_part, None) + current_object_id = msg[object_id] + + if current_object_id != NO_OBJECT: + if current_object_id not in active_objects: + active_objects[current_object_id] = { + "long_distance": msg[long_distance], + "lat_distance": msg[lat_distance], + "rel_velo": msg[rel_velo] * CV.KPH_TO_MS + } + else: + ret.errors = ["canError"] + return ret - self.previous_offsets[signal_part] = current_offset + for object_id, data in active_objects.items(): + if object_id not in self.pts: + self.pts[object_id] = structs.RadarData.RadarPoint() + self.pts[object_id].trackId = self.track_id + self.track_id += 1 + + self.pts[object_id].measured = True + self.pts[object_id].dRel = data["long_distance"] + self.pts[object_id].yRel = data["lat_distance"] + self.pts[object_id].vRel = data["rel_velo"] + self.pts[object_id].aRel = float('nan') + self.pts[object_id].yvRel = float('nan') + + tracked_ids = set(self.pts.keys()) + active_ids = set(active_objects.keys()) + for object_id in tracked_ids - active_ids: + self.pts.pop(object_id, None) ret.points = list(self.pts.values()) return ret From d9d83d806c9b8d6d68ad3b4081aa8da2dce71989 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:51:41 +0200 Subject: [PATCH 390/653] Update radar_interface.py --- opendbc/car/volkswagen/radar_interface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index a1b8b5094c3..4fa69f72465 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -49,8 +49,8 @@ def _update(self, updated_messages): ret = structs.RadarData() if self.rcp is None or not self.rcp.can_valid: - ret.errors = ["canError"] - return ret + ret.errors = ["canError"] + return ret msg = self.rcp.vl["MEB_Distance_01"] From 2a0951095ec33fdee4f726ef3c37e216c6581101 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:09:04 +0200 Subject: [PATCH 391/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 41 +++++-------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index a08f36c19ff..98765ad3cbc 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -41,7 +41,6 @@ def __init__(self, dbc_name, CP): self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 self.steering_power = 0 - self.long_heartbeat = 0 self.accel_last = 0 def update(self, CC, CS, now_nanos): @@ -70,7 +69,6 @@ def update(self, CC, CS, now_nanos): apply_angle = clip(apply_angle, -self.CCP.ANGLE_MAX, self.CCP.ANGLE_MAX) if CS.out.steeringPressed: apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) - else: if self.steering_power > 0: # keep HCA alive until steering power has reduced to zero @@ -137,27 +135,18 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled and CS.out.cruiseState.enabled else 0 self.accel_last = accel current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - required_jerk = min(3, abs(accel - CS.out.aEgo) * 50) ## pfeiferj:openpilot:pfeifer-hkg-long-control-tune - lower_jerk = required_jerk - upper_jerk = required_jerk - - if CS.out.aEgo < accel: - lower_jerk = 0 - else: - upper_jerk = 0 can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, - accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, - CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed, - current_speed, reversing, CS.travel_assist_available)) + accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, + CC.cruiseControl.override or CS.out.gasPressed, CS.travel_assist_available)) else: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 @@ -187,21 +176,13 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - self.long_heartbeat = self.generate_vw_meb_hud_heartbeat(self.long_heartbeat) desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 #min(self.lead_distance, 100) - change_distance_bar = False - if hud_control.leadDistanceBars != self.lead_distance_bars_last: - self.lead_distance_bar_timer = 0 - self.lead_distance_bars_last = hud_control.leadDistanceBars - change_distance_bar = True if self.lead_distance_bar_timer <= 3 else False - - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, - hud_control.leadVisible, hud_control.leadDistanceBars, change_distance_bar, - desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, + hud_control.leadDistanceBars, desired_gap, distance, CS.esp_hold_confirmation)) else: lead_distance = 0 @@ -231,12 +212,6 @@ def update(self, CC, CS, now_nanos): self.frame += 1 return new_actuators, can_sends - def generate_vw_meb_hud_heartbeat(self, long_heartbeat_prev): - if long_heartbeat_prev != 221: - return 221 - elif long_heartbeat_prev == 221: - return 360 - def generate_vw_meb_steering_power(self, CS, lat_active, apply_angle, steering_power_prev): # Steering power counter is used to: # * prevent sudden fluctuations at low speeds From 3a5aa42f3bc108eddde26ebfaf670678647aad36 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:12:14 +0200 Subject: [PATCH 392/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 35 +++++++++++--------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b4e884cadab..adc14e6a3e8 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -106,7 +106,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, lower_jerk, upper_jerk, esp_hold, override, speed, reversing, travel_assist_available): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, esp_hold, override, travel_assist_available): # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism commands = [] @@ -123,8 +123,8 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Status_ACC": acc_control, "ACC_StartStopp_Info": acc_enabled, "ACC_Sollbeschleunigung_02": acceleration, - "ACC_zul_Regelabw_unten": max(0.05, lower_jerk) if acc_control == ACC_CTRL_ACTIVE else 0, - "ACC_zul_Regelabw_oben": min(3.0, upper_jerk) if acc_control == ACC_CTRL_ACTIVE else 0, + "ACC_zul_Regelabw_unten": 0.2 if acc_control == ACC_CTRL_ACTIVE else 0, + "ACC_zul_Regelabw_oben": 0.2 if acc_control == ACC_CTRL_ACTIVE else 0, "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits "ACC_Anfahren": starting, @@ -132,8 +132,6 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "ACC_Anhalteweg": 20.46, "ACC_Anforderung_HMS": acc_hold_type, "ACC_AKTIV_regelt": 1 if acc_control == ACC_CTRL_ACTIVE else 0, - "Speed": speed, # dont know if neccessary - "Reversing": reversing, # dont know if neccessary "SET_ME_0XFE": 0xFE, "SET_ME_0X1": 0x1, "SET_ME_0X9": 0x9, @@ -175,25 +173,17 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove return acc_hud_control -def get_desired_gap(distance_bars, desired_gap): +def get_desired_gap(distance_bars, desired_gap, current_gap_signal): # mapping desired gap to correct signal of corresponding distance bar gap = 0 - - if distance_bars == 1: + + if distance_bars == current_gap_signal: gap = desired_gap - elif distance_bars == 2: - gap = desired_gap - elif distance_bars == 3: - gap = desired_gap - elif distance_bars == 4: - gap = desired_gap - elif distance_bars == 5: - gap = desired_gap return gap -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, change_distance_bar, desired_gap, distance, heartbeat, esp_hold): +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, esp_hold): values = { #"STA_Primaeranz": acc_hud_status, @@ -212,12 +202,11 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 1 - "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 2 - "Zeitluecke_3": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 3 - "Zeitluecke_4": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 4 - "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap), # desired distance to lead object for distance bar 5 - "ACC_Anzeige_Zeitluecke": change_distance_bar if acc_control != ACC_HUD_DISABLED else 0, # show distance bar selection + "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap, 1), # desired distance to lead object for distance bar 1 + "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap, 2), # desired distance to lead object for distance bar 2 + "Zeitluecke_3": get_desired_gap(distance_bars, desired_gap, 3), # desired distance to lead object for distance bar 3 + "Zeitluecke_4": get_desired_gap(distance_bars, desired_gap, 4), # desired distance to lead object for distance bar 4 + "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap, 5), # desired distance to lead object for distance bar 5 "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap "SET_ME_0X1": 0x1, # unknown "SET_ME_0X6A": 0x6A, # unknown From be80b10305de3723993355d985673acd4c69d5da Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:14:03 +0200 Subject: [PATCH 393/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 4a76bece0ce..1178bc0d923 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -33,7 +33,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Panda ALLOW_DEBUG firmware required. ret.dashcamOnly = True - elif ret.flags & VolkswagenFlags.MEB: # TODO + elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: # ret.steerLimitTimer = 1.2 - ret.steerActuatorDelay = 0.12 + ret.steerActuatorDelay = 0.16 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] @@ -89,10 +89,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 ret.radarTimeStep = (1.0 / 25) # 25Hz - #ret.longitudinalTuning.kpBP = [0., 5., 35.] - #ret.longitudinalTuning.kpV = [0., 0.1, 0.4] - ret.longitudinalTuning.kiBP = [0., 5., 35.] - ret.longitudinalTuning.kiV = [1.2, 0.8, 0.5] ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From bb691d81b5380433638d2867bec1c902f3f78709 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 15:19:11 +0200 Subject: [PATCH 394/653] Update car.capnp add volkswagen meb back in --- opendbc/car/car.capnp | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/car.capnp b/opendbc/car/car.capnp index 49f82b6dd3a..e271307a079 100644 --- a/opendbc/car/car.capnp +++ b/opendbc/car/car.capnp @@ -623,6 +623,7 @@ struct CarParams { chryslerCusw @30; psa @31; fcaGiorgio @32; + volkswagenMeb @33; } enum SteerControlType { From fa9633e5f8cab7d87afe8730c88e3060ca111368 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 16:39:56 +0200 Subject: [PATCH 395/653] Update values.py --- opendbc/car/volkswagen/values.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d7a172d6dbd..0012da04a31 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -204,7 +204,6 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): def init(self): self.flags |= VolkswagenFlags.MEB - self.flags |= VolkswagenFlags.CANFD @dataclass From 197fa8880454f3c7b164db03c9fe8f66d0bfe439 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:00:52 +0200 Subject: [PATCH 396/653] Update interface.py fix --- opendbc/car/volkswagen/interface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 1178bc0d923..9b21738bb3a 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -88,7 +88,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 - ret.radarTimeStep = (1.0 / 25) # 25Hz ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 16b1de43fc57773ada9e873421a0f334f79ea49b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:07:53 +0200 Subject: [PATCH 397/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 98765ad3cbc..a69ad999c88 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -171,9 +171,6 @@ def update(self, CC, CS, now_nanos): can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, CS.out.steeringPressed, hud_alert, hud_control)) - if self.frame % 100 == 0 and self.lead_distance_bar_timer <= 3: - self.lead_distance_bar_timer += 1 - if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) From e439a551103431c428470c0ef139e24a589c15f4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:17:30 +0200 Subject: [PATCH 398/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 0012da04a31..6f04ffc8587 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -460,7 +460,7 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - VolkswagenCarSpecs(mass=1950, wheelbase=2.77), + VolkswagenCarSpecs(mass=1950, wheelbase=2.77, steerRatio=14.2), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From dfc717b483ce55e14a2e1cf8b3d68a6ad3d977d4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:19:00 +0200 Subject: [PATCH 399/653] Update mebcan.py fix --- opendbc/car/volkswagen/mebcan.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index adc14e6a3e8..cca70cda169 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -193,7 +193,6 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, - "Heartbeat": heartbeat, # do the same as radar would do, still check if this is necessary "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object From ee1a898fc9cb4055c556c1f699119c8f910d8399 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:19:50 +0200 Subject: [PATCH 400/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index cca70cda169..bb9c9551d3b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,5 +1,3 @@ -from opendbc.car.common.numpy_fast import clip - ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 From 6912c7064410d86369b8dbd2660adb784dab7e3d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:24:58 +0200 Subject: [PATCH 401/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 0f0fc1f2ebe..4167cd18380 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1642,7 +1642,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Zeitluecke_Farbe : 189|1@0+ (1,0) [0|1] "" XXX + SG_ Zeitluecke_Farbe : 189|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX From bfce545c9f2d93dbf6a9228ec430b58051ba53e8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:27:39 +0200 Subject: [PATCH 402/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index bb9c9551d3b..de3a44cbbc5 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -181,7 +181,7 @@ def get_desired_gap(distance_bars, desired_gap, current_gap_signal): return gap -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, esp_hold): +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): values = { #"STA_Primaeranz": acc_hud_status, @@ -191,6 +191,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, + "Heartbeat": heartbeat, "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object From 5c37a06e883f4ea1f90e47a4f1952f35e3f28bab Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:29:22 +0200 Subject: [PATCH 403/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index a69ad999c88..9523179002f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -42,6 +42,7 @@ def __init__(self, dbc_name, CP): self.hca_frame_same_torque = 0 self.steering_power = 0 self.accel_last = 0 + self.long_heartbeat = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -173,13 +174,14 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: + self.long_heartbeat = self.generate_vw_meb_hud_heartbeat(self.long_heartbeat) desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 #min(self.lead_distance, 100) acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, desired_gap, distance, CS.esp_hold_confirmation)) + hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) else: lead_distance = 0 @@ -240,3 +242,9 @@ def generate_vw_meb_steering_power(self, CS, lat_active, apply_angle, steering_p steering_power = 0 return steering_power + + def generate_vw_meb_hud_heartbeat(self, long_heartbeat_prev): + if long_heartbeat_prev != 221: + return 221 + elif long_heartbeat_prev == 221: + return 360 From 343ce425ebdfc25d83c0cafe4cd27d1c09fce775 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 17:44:03 +0200 Subject: [PATCH 404/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 9523179002f..39a38120ffc 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -136,13 +136,13 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: - accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled and CS.out.cruiseState.enabled else 0 + accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel current_speed = CS.out.vEgo * CV.MS_TO_KPH reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, @@ -178,7 +178,7 @@ def update(self, CC, CS, now_nanos): desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 #min(self.lead_distance, 100) - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled and CS.out.cruiseState.enabled, + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) From ed837c4e78d0053e398606455febea7b2a666a31 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 21:59:37 +0200 Subject: [PATCH 405/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 4167cd18380..18035693354 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1594,22 +1594,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (1,-512) [0|3] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (1,-512) [0|1023] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX From 95ac20602072b836acf42e919d3dd51bed687643 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 26 Oct 2024 22:12:16 +0200 Subject: [PATCH 406/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 18035693354..31b3360a24e 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1594,22 +1594,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.85,-435.2) [0|300] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX From 5630d5f23dcdee42f27831d6a81c743925880b2c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 10:46:20 +0100 Subject: [PATCH 407/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index de3a44cbbc5..f039f7175ea 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -191,7 +191,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 512, "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, - "Heartbeat": heartbeat, + #"Heartbeat": heartbeat, "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object From b5245c19f19836f5f8b5290803dda85cb1c9711a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 10:48:17 +0100 Subject: [PATCH 408/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 9b21738bb3a..83b04b549bf 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,9 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: # ret.steerLimitTimer = 1.2 - ret.steerActuatorDelay = 0.16 + ret.steerActuatorDelay = 0.14 + ret.longitudinalTuning.kiBP = [0., 5., 15.] + ret.longitudinalTuning.kiV = [1.4, 1.2, 1.] else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From c0db1f66e5ba1d3c57ec7035c1f43c0e85e6c2c8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 11:34:17 +0100 Subject: [PATCH 409/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index f039f7175ea..9c0c8929d02 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -189,7 +189,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, "ACC_Gesetzte_Zeitluecke": distance_bars, # 5 distance bars available (3 are used by OP) "ACC_Display_Prio": 1, - "ACC_Abstandsindex_02": 512, + "ACC_Abstandsindex_02": 569, "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, #"Heartbeat": heartbeat, "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed From 42da802a1d47174789332e82baa4d2bf26f543e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 11:41:08 +0100 Subject: [PATCH 410/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 1f1722e86c9..00dd5693554 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -331,7 +331,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) else: # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = ext_cp.vl["MEB_ACC_01"]["ACC_Gesetzte_Zeitluecke"] == 0 + ret.cruiseState.nonAdaptive = not any(ext_cp.vl["MEB_ACC_01"][f'Zeitluecke_{idx}'] != 0 for idx in range(1, 6)) ret.accFaulted = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (6, 7) From c2e7932f07bad4bae32c092c21a83c6090744b19 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 11:51:34 +0100 Subject: [PATCH 411/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 31b3360a24e..73e718f865a 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1617,7 +1617,6 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_08 : 286|3@0+ (1,0) [0|1] "" XXX BO_ 768 MEB_ACC_01: 48 XXX - SG_ Unknown_Area_01 : 0|64@1+ (1,0) [0|1.84467440737096e+19] "" XXX SG_ ACC_Tempolimit : 64|5@1+ (1,0) [0|31] "" OTA_FC SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX From 138870a660a2eb20f88ccc07a7a090702e5aa3d7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 11:54:59 +0100 Subject: [PATCH 412/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 73e718f865a..1ffd26ed5aa 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1650,6 +1650,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX + SG_ Unknown_09 : 262|1@0+ (1,0) [0|3] "" XXX SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX From ce23662409ce5a80c5fe112c5f0211724eff6704 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 12:38:59 +0100 Subject: [PATCH 413/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 00dd5693554..2fdef342927 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -331,7 +331,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) else: # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = not any(ext_cp.vl["MEB_ACC_01"][f'Zeitluecke_{idx}'] != 0 for idx in range(1, 6)) + ret.cruiseState.nonAdaptive = bool(pt_cp.vl["MEB_Motor_01"]["TSK_Limiter_ausgewaehlt"]) ret.accFaulted = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (6, 7) From f87c05cc32696d653705c078fbd1a28e0475c332 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 27 Oct 2024 12:39:32 +0100 Subject: [PATCH 414/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 1ffd26ed5aa..fde8f5823ed 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1562,6 +1562,7 @@ BO_ 267 MEB_Motor_01: 32 XXX SG_ Accel_Pedal_Pressure : 12|9@1+ (0.4,0) [0|255] "" XXX SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX + SG_ TSK_Limiter_ausgewaehlt : 95|1@1+ (1,0) [0|3] "" XXX BO_ 588 MEB_Side_Assist_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX From 0fa54fc07c3c79eb85dc0452027cbfcc806e584e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 14:43:28 +0100 Subject: [PATCH 415/653] Update vw_meb.dbc current state --- opendbc/dbc/vw_meb.dbc | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index fde8f5823ed..96cdf3ded68 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1495,11 +1495,11 @@ BO_ 332 MEB_ESP_03: 32 XXX SG_ Accelerator_Pressure : 175|8@0+ (0.391,-14.467) [0|100] "Unit_Percent" XXX BO_ 258 MEB_ESP_04: 48 XXX - SG_ NEW_SIGNAL_1 : 0|8@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_2 : 8|4@1+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Lateral_Accel : 16|8@1+ (1,-128) [0|255] "" XXX - SG_ Longitudinal_Accel : 24|8@1- (1,0) [0|255] "" XXX - SG_ Yaw_Rate : 40|14@1+ (1,0) [0|16383] "" XXX + SG_ Longitudinal_Accel : 24|9@1- (0.0325,0) [0|255] "Unit_MeterPerSquareSecond" XXX + SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX @@ -1522,7 +1522,7 @@ BO_ 522 MEB_ABS_01: 64 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX - SG_ Yaw_Rate : 200|16@1+ (0.007,-229.36) [0|255] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.007,-229.34) [0|255] "" XXX BO_ 261 MEB_ABS_02: 8 XXX SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX @@ -1549,8 +1549,10 @@ BO_ 317 MEB_EPS_01: 32 XXX BO_ 771 HCA_03: 24 XXX SG_ Standby : 13|1@1+ (1,0) [0|1] "" XXX SG_ Request : 14|1@1+ (1,0) [0|1] "" XXX + SG_ Unknown_02 : 15|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Steering_Angle : 24|15@1+ (0.0174,0) [0|360] "Unit_DegreOfArc" XXX + SG_ Power_Boost : 23|1@1+ (1,0) [0|1] "" XXX + SG_ Curvature : 24|15@1+ (0.00036,0) [0|200] "Unit_deg/m" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX @@ -1593,24 +1595,24 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.062,-4.5) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.87,-445.44) [0|300] "Unit_KilometerPerHour" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX From b881d045e1a206f97ae6553a4c7847f432ea27a5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 14:54:52 +0100 Subject: [PATCH 416/653] Update common.cc add MEB esp_04 --- opendbc/can/common.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index e5fe631bec1..40ecc375873 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -184,6 +184,7 @@ unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector static const std::unordered_map> volkswagen_meb_crc_constants { {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // MEB_TRAVEL_ASSIST_01 {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // MEB_ESP_05 + {0x102, {0xD7, 0x12, 0x85, 0x7E, 0x0B, 0x34, 0xFA, 0x16, 0x7A, 0x25, 0x2D, 0x8F, 0x04, 0x8E, 0x5D, 0x35}}, // MEB_ESP_04 {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // MEB_ESP_03 {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_MOTOR_01 {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_ESP_01 From 3034b0dc86a7b90a72946fe8baeed0b790db062a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:02:52 +0100 Subject: [PATCH 417/653] Update carcontroller.py current state --- opendbc/car/volkswagen/carcontroller.py | 71 ++++++++++--------------- 1 file changed, 27 insertions(+), 44 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index b5ac91cf836..d23713c37c8 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -10,13 +10,6 @@ VisualAlert = structs.CarControl.HUDControl.VisualAlert LongCtrlState = structs.CarControl.Actuators.LongControlState -#def apply_meb_curvature_limits(apply_curvature, apply_curvature_last, current_curvature, v_ego_raw, CCP): -# if v_ego_raw > 1: # we don't enforce checks for this in panda at the moment, but keep it near measured current curv to project user input -# apply_curvature = clip(apply_curvature, current_curvature - CCP.CURVATURE_ERROR, current_curvature + CCP.CURVATURE_ERROR) -# apply_curvature = apply_std_steer_angle_limits(apply_curvature, apply_curvature_last, v_ego_raw, CCP) -# -# return clip(apply_curvature, -CCP.CURVATURE_MAX, CCP.CURVATURE_MAX) - class CarController(CarControllerBase): def __init__(self, dbc_names, CP): @@ -32,15 +25,14 @@ def __init__(self, dbc_names, CP): self.ext_bus = CANBUS.pt if CP.networkLocation == structs.CarParams.NetworkLocation.fwdCamera else CANBUS.cam self.apply_steer_last = 0 - #self.apply_curvature_last = 0 - self.apply_angle_last = 0 + self.apply_curvature_last = 0 + self.steering_power_last = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 self.steering_power = 0 self.accel_last = 0 - self.long_heartbeat = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -62,29 +54,27 @@ def update(self, CC, CS, now_nanos): if CC.latActive: hca_enabled = True - #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) # TODO verify sign (clockwise is negative) - #apply_curvature = apply_meb_curvature_limits(actuators.curvature, self.apply_curvature_last, current_curvature, CS.out.vEgoRaw, self.CCP) - apply_angle = apply_std_steer_angle_limits(actuators.steeringAngleDeg, self.apply_angle_last, CS.out.vEgoRaw, self.CCP) - apply_angle = clip(apply_angle, -self.CCP.ANGLE_MAX, self.CCP.ANGLE_MAX) - if CS.out.steeringPressed: - apply_angle = clip(apply_angle, CS.out.steeringAngleDeg - self.CCP.ANGLE_ERROR, CS.out.steeringAngleDeg + self.CCP.ANGLE_ERROR) + current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) + apply_curvature = clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) + if CS.out.steeringPressed: # roughly sync with user input + apply_angle = clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) else: - if self.steering_power > 0: # keep HCA alive until steering power has reduced to zero - hca_enabled = True - #current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - #apply_curvature = current_curvature - apply_angle = CS.out.steeringAngleDeg # synchronize with current steering angle + if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero + hca_enabled = True + current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + apply_curvature = current_curvature # synchronize with current steering angle else: - hca_enabled = False - #apply_curvature = 0. - apply_angle = 0 - - self.steering_power = self.generate_vw_meb_steering_power(CS, CC.latActive, apply_angle, self.steering_power) - #self.apply_curvature_last = apply_curvature - self.apply_angle_last = apply_angle - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_angle, hca_enabled, self.steering_power)) - + hca_enabled = False + apply_curvature = 0. # inactive curvature + + steering_power = self.generate_vw_meb_steering_power(CS, CC.latActive, apply_curvature, self.steering_power_last) + steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, steering_power_boost)) + self.apply_curvature_last = apply_curvature + self.steering_power_last = steering_power + else: # Logic to avoid HCA state 4 "refused": # * Don't steer unless HCA is in state 3 "ready" or 5 "active" @@ -136,8 +126,6 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel - current_speed = CS.out.vEgo * CV.MS_TO_KPH - reversing = CS.out.gearShifter in [structs.CarState.GearShifter.reverse] acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, @@ -160,6 +148,7 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.LDW_STEP == 0: hud_alert = 0 sound_alert = 0 + if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] sound_alert = 1 @@ -172,14 +161,13 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - self.long_heartbeat = self.generate_vw_meb_hud_heartbeat(self.long_heartbeat) desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) distance = 50 #min(self.lead_distance, 100) acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, desired_gap, distance, self.long_heartbeat, CS.esp_hold_confirmation)) + hud_control.leadDistanceBars, desired_gap, distance, CS.esp_hold_confirmation)) else: lead_distance = 0 @@ -209,17 +197,18 @@ def update(self, CC, CS, now_nanos): self.frame += 1 return new_actuators, can_sends - def generate_vw_meb_steering_power(self, CS, lat_active, apply_angle, steering_power_prev): + def generate_vw_meb_steering_power(self, CS, lat_active, apply_curvature, steering_power_prev): # Steering power counter is used to: # * prevent sudden fluctuations at low speeds # * avoid HCA refused # * easy user intervention # * keep it near maximum regarding speed to get full steering power in shortest time if lat_active: + current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) - steering_angle_diff = abs(apply_angle - CS.out.steeringAngleDeg) - steering_power_target_angle = steering_power_min_by_speed + self.CCP.ANGLE_POWER_FACTOR * steering_angle_diff + abs(apply_angle) - steering_power_target = clip(steering_power_target_angle, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) + steering_curvature_diff = abs(apply_curvature - current_curvature) + steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_diff + abs(apply_curvature)) + steering_power_target = clip(steering_power_target_curvature, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) if steering_power_prev < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated steering_power = min(steering_power_prev + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) @@ -240,9 +229,3 @@ def generate_vw_meb_steering_power(self, CS, lat_active, apply_angle, steering_p steering_power = 0 return steering_power - - def generate_vw_meb_hud_heartbeat(self, long_heartbeat_prev): - if long_heartbeat_prev != 221: - return 221 - elif long_heartbeat_prev == 221: - return 360 From 1db6b684a225b3b44d04abddfdb3babbe48d4265 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:08:49 +0100 Subject: [PATCH 418/653] Update carstate.py current state --- opendbc/car/volkswagen/carstate.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 0cde5c3fda9..cb6f881e82f 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -275,17 +275,18 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.standstill = ret.vEgoRaw == 0 # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. - ret.steeringAngleDeg = pt_cp.vl["MEB_EPS_01"]["Steering_Angle"] * (1, -1)[int(pt_cp.vl["MEB_EPS_01"]["Steering_Angle_VZ"])] + # LWI_01, MEP_EPS_01 steering angle differs from real steering angle! Do not use + ret.steeringAngleDeg = pt_cp.vl["LH_EPS_03"]["EPS_Berechneter_LW"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_BLW"])] ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE - ret.yawRate = pt_cp.vl["MEB_ABS_01"]["Yaw_Rate"] * CV.DEG_TO_RAD + ret.yawRate = pt_cp.vl["MEB_ESP_04"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["MEB_ESP_04"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD hca_status = self.CCP.hca_status_values.get(pt_cp.vl["MEB_EPS_01"]["LatCon_HCA_Status"]) ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) # VW Emergency Assist status tracking and mitigation self.eps_stock_values = pt_cp.vl["LH_EPS_03"] - #ret.carFaultedNonCritical = + #ret.carFaultedNonCritical = TODO # Update gas, brakes, and gearshift. ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 @@ -293,6 +294,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] in (1, 4) # EPB closing or closed + # regen braking bool(pt_cp.vl["MEB_ESP_04"]['Regen_Braking']) TODO # Update gear and/or clutch position data. ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) From cfb31adf28e948bc63cfc456c96c0646f5dba173 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:10:04 +0100 Subject: [PATCH 419/653] Update interface.py current state --- opendbc/car/volkswagen/interface.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 83b04b549bf..cdae0b0fcae 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -40,7 +40,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle ret.radarUnavailable = False - #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, MEB_EPS_01 ret.networkLocation = NetworkLocation.gateway @@ -74,10 +73,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - # ret.steerLimitTimer = 1.2 - ret.steerActuatorDelay = 0.14 - ret.longitudinalTuning.kiBP = [0., 5., 15.] - ret.longitudinalTuning.kiV = [1.4, 1.2, 1.] + ret.steerActuatorDelay = 0.1 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From 2b527bfe7257a56d3a3b11d20dd566a3f8651259 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:14:32 +0100 Subject: [PATCH 420/653] Update mebcan.py current state --- opendbc/car/volkswagen/mebcan.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 9c0c8929d02..4013cae96d0 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,3 +1,5 @@ +from opendbc.car.common.conversions import Conversions as CV + ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 @@ -15,13 +17,13 @@ ACC_HUD_DISABLED = 0 -def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): +def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, power_boost): # active lateral control deactivates active steering wheel centering values = { - #"Curvature": abs(apply_curvature) * 1000, # in 1/mm - "Steering_Angle": abs(apply_curvature), - "VZ": 1 if apply_curvature < 0 and lkas_enabled == 1 else 0, # > for curvature + "Curvature": abs(apply_curvature) * CV.RAD_TO_DEG, # in deg/m + "VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, "Power": power if lkas_enabled else 0, + "Power_Boost": 1 if power_boost and lkas_enabled else 0, "Active": lkas_enabled, "Request": lkas_enabled, "Standby": not lkas_enabled, @@ -133,20 +135,16 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "SET_ME_0XFE": 0xFE, "SET_ME_0X1": 0x1, "SET_ME_0X9": 0x9, - "SET_ME_0XFE": 0xFE, - "SET_ME_0X1": 0x1, - "SET_ME_0X9": 0x9, } commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) if travel_assist_available: # satisfy car to prevent errors when pressing Travel Assist Button - # testing effects of enabling this while acc enabled values_ta = { "Travel_Assist_Status": 4 if acc_enabled else 2, "Travel_Assist_Request": 0, - "Travel_Assist_Available": 1, # button is illuminated + "Travel_Assist_Available": 1, } commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) @@ -181,17 +179,15 @@ def get_desired_gap(distance_bars, desired_gap, current_gap_signal): return gap -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, heartbeat, esp_hold): +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, esp_hold): values = { - #"STA_Primaeranz": acc_hud_status, "ACC_Status_ACC": acc_control, "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, "ACC_Gesetzte_Zeitluecke": distance_bars, # 5 distance bars available (3 are used by OP) "ACC_Display_Prio": 1, "ACC_Abstandsindex_02": 569, "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, - #"Heartbeat": heartbeat, "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object From 0e76c77ead0254048b1b1b1db8b562437bb96b92 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 15:18:34 +0100 Subject: [PATCH 421/653] Update values.py current state --- opendbc/car/volkswagen/values.py | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d4cdbefccdd..0a0586b1bef 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -74,21 +74,16 @@ def __init__(self, CP): elif CP.flags & VolkswagenFlags.MEB: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz - self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.8 Nm - self.STEERING_POWER_MAX = 127 # HCA_03 maximum steering power - self.STEERING_POWER_MIN = 60 # HCA_03 minimum steering power - self.STEERING_POWER_STEPS = 10 # HCA_03 steering power counter steps + self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.6 Nm + self.STEERING_POWER_MAX = 125 # HCA_03 maximum steering power + self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power + self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached - #self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m, we estimate that about 0.2 1/m is max of signal - #self.CURVATURE_ERROR = 0.01 # HCA_03 curvature error, yaw rate error at standstill in range of about 0.2 deg/sec - #self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.004, 0.002, 0.001]) # curvature safety limit up - #self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5, 12, 25], angle_v=[0.005, 0.0025, 0.0015]) # curvature safety limit down - self.ANGLE_ERROR = 20 # HCA_03 maximum difference from steering angle - self.ANGLE_MAX = 360 # HCA_03 maximum angle, max for HCA_03 ~ 420 deg - self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[12., 4., 0.4]) # max for HCA_03 ~ 120-130 deg/s - self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[12., 8., 0.8]) - self.ANGLE_POWER_FACTOR = 4 - + self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m + self.CURVATURE_ERROR = 0.01 + self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0015, 0.00015]) # curvature safety limit up (max real steering angle change ~ 120-130 deg/s) + self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0034, 0.00034]) # curvature safety limit down + self.CURVATURE_POWER_FACTOR = 4000 self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] self.hca_status_values = can_define.dv["MEB_EPS_01"]["LatCon_HCA_Status"] @@ -103,7 +98,7 @@ def __init__(self, CP): Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), ] - self.LDW_MESSAGES = { + self.LDW_MESSAGES = { # verify TODO "none": 0, # Nothing to display "laneAssistUnavailChime": 1, # "Lane Assist currently not available." with chime "laneAssistUnavailNoSensorChime": 3, # "Lane Assist not available. No sensor view." with chime @@ -460,7 +455,7 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - VolkswagenCarSpecs(mass=1950, wheelbase=2.77, steerRatio=14.2), + VolkswagenCarSpecs(mass=1950, wheelbase=2.77, steerRatio=15.9), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From 7de43313be78a8f59805083dbf485414813c7121 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:18:42 +0100 Subject: [PATCH 422/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 0a0586b1bef..81db1132c7c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -81,7 +81,7 @@ def __init__(self, CP): self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m self.CURVATURE_ERROR = 0.01 - self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0015, 0.00015]) # curvature safety limit up (max real steering angle change ~ 120-130 deg/s) + self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0015, 0.00015]) # curvature safety limit up self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0034, 0.00034]) # curvature safety limit down self.CURVATURE_POWER_FACTOR = 4000 From 3d912df5c028d8399d1ada4cb503171840e2f37a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:20:02 +0100 Subject: [PATCH 423/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 69 ++++++++++--------------- 1 file changed, 26 insertions(+), 43 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index d23713c37c8..4c12b1f4f41 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -43,14 +43,10 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.STEER_STEP == 0: if self.CP.flags & VolkswagenFlags.MEB: - # Logic to avoid HCA refused state - # * steering power as counter near zero before standstill OP lane assist deactivation - # MEB rack can be used continously without found time limits yet - # Steering power counter is used to: - # * prevent sudden fluctuations at low speeds - # * avoid HCA refused - # * easy user intervention - # * keep it near maximum regarding speed to get full steering power in shortest time + # Logic to avoid HCA refused state: + # * steering power as counter and near zero before OP lane assist deactivation + # MEB rack can be used continously without time limits + # maximum real steering angle change ~ 120-130 deg/s if CC.latActive: hca_enabled = True @@ -59,18 +55,38 @@ def update(self, CC, CS, now_nanos): apply_curvature = clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) if CS.out.steeringPressed: # roughly sync with user input apply_angle = clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) + + steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) + steering_curvature_diff = abs(apply_curvature - current_curvature) + steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_diff + abs(apply_curvature)) + steering_power_target = clip(steering_power_target_curvature, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) + + if self.steering_power_last < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated + steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + elif CS.out.steeringPressed and self.steering_power_last > self.CCP.STEERING_POWER_MIN: # user action results in decreasing the steering power + steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + else: # following desired target + if self.steering_power_last < steering_power_target: + steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, steering_power_target) + elif self.steering_power_last > steering_power_target: + steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, steering_power_target) + else: + steering_power = self.steering_power_last + + steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False else: + steering_power_boost = False if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) apply_curvature = current_curvature # synchronize with current steering angle + steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, 0) else: hca_enabled = False apply_curvature = 0. # inactive curvature + steering_power = 0 - steering_power = self.generate_vw_meb_steering_power(CS, CC.latActive, apply_curvature, self.steering_power_last) - steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, steering_power_boost)) self.apply_curvature_last = apply_curvature self.steering_power_last = steering_power @@ -196,36 +212,3 @@ def update(self, CC, CS, now_nanos): self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 return new_actuators, can_sends - - def generate_vw_meb_steering_power(self, CS, lat_active, apply_curvature, steering_power_prev): - # Steering power counter is used to: - # * prevent sudden fluctuations at low speeds - # * avoid HCA refused - # * easy user intervention - # * keep it near maximum regarding speed to get full steering power in shortest time - if lat_active: - current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) - steering_curvature_diff = abs(apply_curvature - current_curvature) - steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_diff + abs(apply_curvature)) - steering_power_target = clip(steering_power_target_curvature, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) - - if steering_power_prev < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated - steering_power = min(steering_power_prev + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) - elif CS.out.steeringPressed and steering_power_prev > self.CCP.STEERING_POWER_MIN: # user action results in decreasing the steering power - steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) - else: # following desired target - if steering_power_prev < steering_power_target: - steering_power = min(steering_power_prev + self.CCP.STEERING_POWER_STEPS, steering_power_target) - elif steering_power_prev > steering_power_target: - steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, steering_power_target) - else: - steering_power = steering_power_prev - - else: - if steering_power_prev > 0: # monotonously decrement power to zero before disabling lane assist to prevent EPS fault - steering_power = max(steering_power_prev - self.CCP.STEERING_POWER_STEPS, 0) - else: - steering_power = 0 - - return steering_power From 82049ec3c67e060ebef2af6b109240209b04ef20 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:22:22 +0100 Subject: [PATCH 424/653] Update carcontroller.py refactor, fix --- opendbc/car/volkswagen/carcontroller.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 4c12b1f4f41..3c007425431 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -27,12 +27,11 @@ def __init__(self, dbc_names, CP): self.apply_steer_last = 0 self.apply_curvature_last = 0 self.steering_power_last = 0 + self.accel_last = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 self.hca_frame_same_torque = 0 - self.steering_power = 0 - self.accel_last = 0 def update(self, CC, CS, now_nanos): actuators = CC.actuators @@ -205,8 +204,7 @@ def update(self, CC, CS, now_nanos): new_actuators = actuators.as_builder() new_actuators.steer = self.apply_steer_last / self.CCP.STEER_MAX new_actuators.steerOutputCan = self.apply_steer_last - #new_actuators.curvature = self.apply_curvature_last - new_actuators.steeringAngleDeg = self.apply_angle_last + new_actuators.curvature = self.apply_curvature_last new_actuators.accel = self.accel_last self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] From 20003bfffa58b7addf6790ef699ebc671f58af01 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:26:41 +0100 Subject: [PATCH 425/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 3c007425431..1ebcab39383 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -53,7 +53,7 @@ def update(self, CC, CS, now_nanos): apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) apply_curvature = clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) if CS.out.steeringPressed: # roughly sync with user input - apply_angle = clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) + apply_curvature = clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) steering_power_min_by_speed = interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) steering_curvature_diff = abs(apply_curvature - current_curvature) @@ -79,7 +79,7 @@ def update(self, CC, CS, now_nanos): if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - apply_curvature = current_curvature # synchronize with current steering angle + apply_curvature = current_curvature # synchronize with current curvature steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, 0) else: hca_enabled = False From 43729b312d912213006c2a84bc88991830aba58c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:32:38 +0100 Subject: [PATCH 426/653] Update override.toml --- opendbc/car/torque_data/override.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/torque_data/override.toml b/opendbc/car/torque_data/override.toml index aad06e8e3e5..41a2108525a 100644 --- a/opendbc/car/torque_data/override.toml +++ b/opendbc/car/torque_data/override.toml @@ -47,6 +47,7 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "CHEVROLET_TRAVERSE" = [1.33, 1.33, 0.18] "CHEVROLET_EQUINOX" = [2.5, 2.5, 0.05] "CHEVROLET_VOLT_2019" = [1.4, 1.4, 0.16] +"CUPRA_BORN_MK1" = [nan, 2.5, nan] "VOLKSWAGEN_CADDY_MK3" = [1.2, 1.2, 0.1] "VOLKSWAGEN_PASSAT_NMS" = [2.5, 2.5, 0.1] "VOLKSWAGEN_SHARAN_MK2" = [2.5, 2.5, 0.1] From f00059a0759a3c8a94c5f68decf9102be7e64d9b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:33:02 +0100 Subject: [PATCH 427/653] Update substitute.toml --- opendbc/car/torque_data/substitute.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/torque_data/substitute.toml b/opendbc/car/torque_data/substitute.toml index d739499a609..456f823dfa2 100644 --- a/opendbc/car/torque_data/substitute.toml +++ b/opendbc/car/torque_data/substitute.toml @@ -72,7 +72,6 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "VOLKSWAGEN_TAOS_MK1" = "VOLKSWAGEN_TIGUAN_MK2" "VOLKSWAGEN_POLO_MK6" = "VOLKSWAGEN_GOLF_MK7" "SEAT_ATECA_MK1" = "VOLKSWAGEN_GOLF_MK7" -"CUPRA_BORN_MK1" = "VOLKSWAGEN_GOLF_MK7" "VOLKSWAGEN_JETTA_MK6" = "VOLKSWAGEN_PASSAT_NMS" "SUBARU_CROSSTREK_HYBRID" = "SUBARU_IMPREZA_2020" From 8c638d0bc7126a9dcbf11abfcc470bc335948209 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:54:51 +0100 Subject: [PATCH 428/653] Update README.md --- README.md | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index eb22ac5488b..169bcb8cdc4 100644 --- a/README.md +++ b/README.md @@ -66,12 +66,19 @@ In addition to the standard bounties, we also offer higher value bounties for mo ### Quick start -Use [panda](https://github.com/commaai/panda) to connect your car to a computer. +```bash +git clone https://github.com/commaai/opendbc.git -## How to use reverse engineered DBC -To create custom CAN simulations or send reverse engineered signals back to the car you can use [CANdevStudio](https://github.com/GENIVI/CANdevStudio) project. +cd opendbc -## DBC file preprocessor +# Install the dependencies +pip3 install -e .[testing,docs] + +# Build +scons -j8 + +# Run the tests +pytest . # Run the linter pre-commit run --all-files From a9429870865fe184b57312f0cb754106adf886d0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:56:43 +0100 Subject: [PATCH 429/653] Update structs.py --- opendbc/car/structs.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/structs.py b/opendbc/car/structs.py index 4557d16b713..14519d86229 100644 --- a/opendbc/car/structs.py +++ b/opendbc/car/structs.py @@ -17,4 +17,3 @@ CarStateT = capnp.lib.capnp._StructModule RadarDataT = capnp.lib.capnp._StructModule CarControlT = capnp.lib.capnp._StructModule -CarParamsT = capnp.lib.capnp._StructModule \ No newline at end of file From f5e38cca7984cec7eadb8b1727140ad29e36a93c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:57:14 +0100 Subject: [PATCH 430/653] Update structs.py --- opendbc/car/structs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/structs.py b/opendbc/car/structs.py index 14519d86229..a5628c7e000 100644 --- a/opendbc/car/structs.py +++ b/opendbc/car/structs.py @@ -17,3 +17,4 @@ CarStateT = capnp.lib.capnp._StructModule RadarDataT = capnp.lib.capnp._StructModule CarControlT = capnp.lib.capnp._StructModule +CarParamsT = capnp.lib.capnp._StructModule From 8099a08e4b29a445e1bdbeb1a39541428ca8f394 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:00:13 +0100 Subject: [PATCH 431/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 81db1132c7c..d24e8dd7ca4 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -212,7 +212,7 @@ def init(self): @dataclass(frozen=True, kw_only=True) class VolkswagenCarSpecs(CarSpecs): centerToFrontRatio: float = 0.45 - steerRatio: float = 15 #15.6 + steerRatio: float = 15.6 minSteerSpeed: float = CarControllerParams.DEFAULT_MIN_STEER_SPEED From 3417d6a2a5abf0df75ebbe655b7f8d0528be826b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:01:31 +0100 Subject: [PATCH 432/653] Update vw_mqb_2010.dbc From 5b0d12355a4cacce934f2b75f4cf8fdc8c2f1f01 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:04:17 +0100 Subject: [PATCH 433/653] Update vw_mqb_2010.dbc --- opendbc/dbc/vw_mqb_2010.dbc | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/opendbc/dbc/vw_mqb_2010.dbc b/opendbc/dbc/vw_mqb_2010.dbc index 1c9ea180e17..cb6ea038897 100644 --- a/opendbc/dbc/vw_mqb_2010.dbc +++ b/opendbc/dbc/vw_mqb_2010.dbc @@ -94,8 +94,6 @@ BO_ 679 ACC_13: 8 XXX SG_ ACC_ADAPTIVE : 63|2@0+ (1,0) [0|3] "" XXX BO_ 681 ACC_15: 8 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ AWV_Warnung : 16|3@1+ (1,0) [0|7] "" XXX SG_ AWV_Texte : 24|3@1+ (1,0) [0|7] "" XXX SG_ AWV_Status_Anzeige : 32|2@1+ (1,0) [0|3] "" XXX @@ -1197,8 +1195,8 @@ BO_ 288 TSK_06: 8 Motor_Diesel_MQB SG_ TSK_zul_Regelabw : 58|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB BO_ 798 TSK_07: 8 Motor_Diesel_MQB - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_AQ - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_AQ + SG_ TSK_07_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_AQ + SG_ TSK_07_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_AQ SG_ TSK_Wunschgeschw : 12|10@1+ (0.32,0) [0.00|326.72] "Unit_KiloMeterPerHour" Gateway_MQB,Getriebe_AQ SG_ TSK_Texte : 40|5@1+ (1.0,0.0) [0.0|31] "" Gateway_MQB SG_ TSK_Akustik : 45|3@1+ (1.0,0.0) [0.0|7] "" Gateway_MQB @@ -1284,15 +1282,13 @@ BO_ 294 HCA_01: 8 Frontsensorik SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ HCA_01_Enable : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Sendestatus : 30|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Available : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Status_HCA : 32|4@1+ (1,0) [0|15] "" Vector__XXX SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar - + BO_ 159 LH_EPS_03: 8 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX @@ -1576,12 +1572,6 @@ BO_ 391 Motor_EV_01: 8 Motor_MQB_BEV SG_ MO_HVEM_Eskalation : 54|1@1+ (1.0,0.0) [0.0|1] "" XXX SG_ MO_HVEM_MaxLeistung : 55|9@1+ (50,0) [0|25450] "Unit_Watt" XXX -BO_ 2536708353 BAP_LDW_01: 2 XXX - SG_ Stream : 0|16@1+ (1,0) [0|65535] "" XXX - -BO_ 2536708368 BAP_LDW_10: 8 XXX - SG_ Stream : 0|64@1+ (1,0) [0|18446744073709551615] "" XXX - CM_ SG_ 134 LWI_Lenkradwinkel "Steering angle WITH variable ratio effect included"; CM_ SG_ 159 EPS_HCA_Status "Status of Heading Control Assist feature"; CM_ SG_ 159 EPS_Lenkmoment "Steering input by driver, torque"; From 6908e86cd5782828e83431b0714905c710a11921 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:06:15 +0100 Subject: [PATCH 434/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index cdae0b0fcae..8df45c01da7 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -95,10 +95,10 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.transmissionType == TransmissionType.manual: ret.minEnableSpeed = 4.5 - ret.vEgoStarting = 0.1 - ret.vEgoStopping = 0.5 ret.pcmCruise = not ret.openpilotLongitudinalControl ret.stopAccel = -0.55 + ret.vEgoStarting = 0.1 + ret.vEgoStopping = 0.5 ret.autoResumeSng = ret.minEnableSpeed == -1 return ret From c0b6efeab73db5ceba1a2ace69633cdc554935eb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:24:57 +0100 Subject: [PATCH 435/653] Update radar_interface.py --- opendbc/car/volkswagen/radar_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 4fa69f72465..436643c1bc8 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -17,7 +17,7 @@ def get_radar_can_parser(CP): else: return None - return CANParser(DBC[CP.carFingerprint]['radar'], messages, 2) + return CANParser(DBC[CP.carFingerprint][Bus.radar], messages, 2) class RadarInterface(RadarInterfaceBase): From fd0ffd917368575acc8fd2fa6cb4bfc120263c73 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:31:39 +0100 Subject: [PATCH 436/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index cb6f881e82f..8fefc12cfff 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -510,10 +510,7 @@ def get_can_parsers_meb(CP): if CP.enableBsm: pt_messages += MebExtraSignals.bsm_radar_messages - return CANParser(DBC[CP.carFingerprint]["pt"], pt_messages, CANBUS.pt) - cam_messages = [] - if CP.networkLocation == NetworkLocation.fwdCamera: cam_messages += [ # sig_address, frequency From e7b3e4de907d911eef492861377806cdd1f75bf4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:39:01 +0100 Subject: [PATCH 437/653] Update radar_interface.py --- opendbc/car/volkswagen/radar_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 436643c1bc8..6095668dab3 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -1,7 +1,7 @@ import math from opendbc.can.parser import CANParser -from opendbc.car import structs +from opendbc.car import Bus, structs from opendbc.car.interfaces import RadarInterfaceBase from opendbc.car.common.conversions import Conversions as CV from opendbc.car.volkswagen.values import DBC, VolkswagenFlags From 9c4704c5df7998e66b126ee28e0fe860bbda9322 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:20:45 +0100 Subject: [PATCH 438/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 1ebcab39383..41d1f65aa8a 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -28,6 +28,7 @@ def __init__(self, dbc_names, CP): self.apply_curvature_last = 0 self.steering_power_last = 0 self.accel_last = 0 + self.acc_hold_type_prev = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -143,8 +144,9 @@ def update(self, CC, CS, now_nanos): self.accel_last = accel acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, self.acc_hold_type_prev, starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) + self.acc_hold_type_prev = acc_hold_type can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, From faa75ba28ff2b92e4f4f3ba2c8d58c4f1567611c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:23:47 +0100 Subject: [PATCH 439/653] Update mebcan.py optimization hms states --- opendbc/car/volkswagen/mebcan.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 4013cae96d0..66c77435b00 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -6,9 +6,10 @@ ACC_CTRL_ENABLED = 2 ACC_CTRL_DISABLED = 0 -ACC_HMS_NO_REQUEST = 0 -ACC_HMS_RELEASE = 4 -ACC_HMS_HOLD = 1 +ACC_HMS_RAMP_RELEASE = 5 +ACC_HMS_RELEASE = 4 +ACC_HMS_HOLD = 1 +ACC_HMS_NO_REQUEST = 0 ACC_HUD_ERROR = 6 ACC_HUD_OVERRIDE = 4 @@ -89,13 +90,16 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override): +def acc_hold_type(main_switch_on, acc_faulted, long_active, acc_hold_type_prev, starting, stopping, esp_hold, override): # warning: car is reacting to hold mechanic even with long control off if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request + if acc_hold_type_prev != ACC_HMS_NO_REQUEST: + acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override + else: + acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request elif starting: acc_hold_type = ACC_HMS_RELEASE # release request and startup elif stopping or esp_hold: From 126c8ab02762c35772972349ec22252d932a62c0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:40:43 +0100 Subject: [PATCH 440/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 66c77435b00..695251e0729 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -97,7 +97,7 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, acc_hold_type_prev, acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: if acc_hold_type_prev != ACC_HMS_NO_REQUEST: - acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override + acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed, 1 frame is enough) else: acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request elif starting: @@ -111,12 +111,12 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, acc_hold_type_prev, def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, esp_hold, override, travel_assist_available): - # active longitudinal control disables one pedal driving (regen mode of accelerator) while using overriding mechnism + # active longitudinal control disables one pedal driving (regen mode) while using overriding mechnism commands = [] if acc_enabled: if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 + acceleration = 0.00 # original ACC still sends active accel in this case (seamless experience) else: acceleration = accel else: From d368c698e249da116d243e5f2adfc3cff5f80a75 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:46:54 +0100 Subject: [PATCH 441/653] Update mebcan.py ramp release request successfully prevents car error --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 695251e0729..2d1defaff3b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -90,13 +90,13 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, acc_hold_type_prev, starting, stopping, esp_hold, override): +def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, first_override): # warning: car is reacting to hold mechanic even with long control off if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - if acc_hold_type_prev != ACC_HMS_NO_REQUEST: + if first_override: acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed, 1 frame is enough) else: acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request From f193d3e16f20bc3ec13b797db55c2fb2c424b6e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:51:59 +0100 Subject: [PATCH 442/653] Update carcontroller.py adaption to a frame of HMS ramp release --- opendbc/car/volkswagen/carcontroller.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 41d1f65aa8a..3de00102aab 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -28,7 +28,7 @@ def __init__(self, dbc_names, CP): self.apply_curvature_last = 0 self.steering_power_last = 0 self.accel_last = 0 - self.acc_hold_type_prev = 0 + self.long_override_prev = False self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -142,15 +142,19 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel + long_override = CC.cruiseControl.override or CS.out.gasPressed + first_override = True if long_override and not self.long_override_prev else False + self.long_override_prev = long_override + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, self.acc_hold_type_prev, - starting, stopping, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) + CS.esp_hold_confirmation, long_override) + acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, + CS.esp_hold_confirmation, long_override, first_override) self.acc_hold_type_prev = acc_hold_type can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, - CC.cruiseControl.override or CS.out.gasPressed, CS.travel_assist_available)) + long_override, CS.travel_assist_available)) else: accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 From fc57221e9edcae2a7a33b42326fae9dad8f8d32a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 17:53:55 +0100 Subject: [PATCH 443/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 3de00102aab..240c7c9b453 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -182,8 +182,8 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - desired_gap = max(1, CS.out.vEgo * 1) #get_T_FOLLOW(hud_control.leadDistanceBars)) - distance = 50 #min(self.lead_distance, 100) + desired_gap = max(1, CS.out.vEgo * 1) # TODO gap from model, get_T_FOLLOW(hud_control.leadDistanceBars)) + distance = 50 # TODO lead distance from model, min(self.lead_distance, 100) acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) From 1d3e0197186513d68a4e0637067407e3f585d3d7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:09:58 +0100 Subject: [PATCH 444/653] Update carcontroller.py send at least 4 frames of HMS RAMP RELEASE at beginning of long override to prevent panda safety from blocking this request (lower this possibility) --- opendbc/car/volkswagen/carcontroller.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 240c7c9b453..9d5a594d782 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -28,7 +28,7 @@ def __init__(self, dbc_names, CP): self.apply_curvature_last = 0 self.steering_power_last = 0 self.accel_last = 0 - self.long_override_prev = False + self.long_override_counter = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -140,16 +140,18 @@ def update(self, CC, CS, now_nanos): starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) if self.CP.flags & VolkswagenFlags.MEB: + # Logic to prevent car error with EPB: + # * send a few frames of HMS RAMP RELEASE command at the very begin of long override accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel long_override = CC.cruiseControl.override or CS.out.gasPressed - first_override = True if long_override and not self.long_override_prev else False - self.long_override_prev = long_override + self.long_override_counter = self.long_override_counter + 1 if long_override else 0 + override_begin = True if long_override and long_override_counter < 5 else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, - CS.esp_hold_confirmation, long_override, first_override) + CS.esp_hold_confirmation, long_override, override_begin) self.acc_hold_type_prev = acc_hold_type can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, From 12add21c5182bed0a8d3253fe1dc90c0e373a0fb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:10:49 +0100 Subject: [PATCH 445/653] Update mebcan.py adaption override hms --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 2d1defaff3b..6acd780c943 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -90,13 +90,13 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, first_override): +def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, override_begin): # warning: car is reacting to hold mechanic even with long control off if acc_faulted or not long_active: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: - if first_override: + if override_begin: acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed, 1 frame is enough) else: acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request From 32cabd52dbc346438656fec80c1b0f00673db817 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:20:43 +0100 Subject: [PATCH 446/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 9d5a594d782..924c56f2973 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -152,8 +152,6 @@ def update(self, CC, CS, now_nanos): CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, long_override, override_begin) - self.acc_hold_type_prev = acc_hold_type - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, long_override, CS.travel_assist_available)) From 33511d379de78dfce420466b0a12cd5d81ea23ed Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:27:22 +0100 Subject: [PATCH 447/653] Update carcontroller.py fix --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 924c56f2973..46eee77dcd7 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -146,12 +146,12 @@ def update(self, CC, CS, now_nanos): self.accel_last = accel long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = self.long_override_counter + 1 if long_override else 0 - override_begin = True if long_override and long_override_counter < 5 else False + long_override_begin = True if long_override and self.long_override_counter < 5 else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, - CS.esp_hold_confirmation, long_override, override_begin) + CS.esp_hold_confirmation, long_override, long_override_begin) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, long_override, CS.travel_assist_available)) From 3df1aea036215531451a224d3668d85228d373c4 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:53:25 +0100 Subject: [PATCH 448/653] Update carcontroller.py works, make a hint here also --- opendbc/car/volkswagen/carcontroller.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 46eee77dcd7..23d083f7f43 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -146,6 +146,7 @@ def update(self, CC, CS, now_nanos): self.accel_last = accel long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = self.long_override_counter + 1 if long_override else 0 + # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override_begin = True if long_override and self.long_override_counter < 5 else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, From 7d0f50c928f56eec826ece5c3cd0e8e49674cc27 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:08:41 +0100 Subject: [PATCH 449/653] Update vw_meb.dbc correct relative speed signals after reevaluation --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 96cdf3ded68..119e455035f 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1597,22 +1597,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.33,-168.96) [0|50] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX From d396df512e1ce1a90999f299684d7354ff51fcb2 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 19:40:27 +0100 Subject: [PATCH 450/653] Update radar_interface.py fix wrong conversion, relative speed is in m/s --- opendbc/car/volkswagen/radar_interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 6095668dab3..eca9625a9d5 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -71,7 +71,7 @@ def _update(self, updated_messages): active_objects[current_object_id] = { "long_distance": msg[long_distance], "lat_distance": msg[lat_distance], - "rel_velo": msg[rel_velo] * CV.KPH_TO_MS + "rel_velo": msg[rel_velo] } else: ret.errors = ["canError"] From 836cca820f157b29897441e891c843f7e24e65cd Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:11:39 +0100 Subject: [PATCH 451/653] Update interface.py allow MEB radar for network location gateway --- opendbc/car/volkswagen/interface.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 8df45c01da7..f3cdccd3af0 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -39,13 +39,15 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle - ret.radarUnavailable = False if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, MEB_EPS_01 ret.networkLocation = NetworkLocation.gateway else: ret.networkLocation = NetworkLocation.fwdCamera + if ret.networkLocation == NetworkLocation.gateway: + ret.radarUnavailable = False + else: # Set global MQB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] From 036acdfd808ddefa2aae25375a7b703e0a380bcb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:39:29 +0100 Subject: [PATCH 452/653] Update carstate.py add acc hud values for passing through stock distance and time gap values for now as long as we dont use model data --- opendbc/car/volkswagen/carstate.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 8fefc12cfff..4217c51fc50 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -17,6 +17,7 @@ def __init__(self, CP): self.esp_hold_confirmation = False self.upscale_lead_car_signal = False self.eps_stock_values = False + self.acc_hud_values = False def create_button_events(self, pt_cp, buttons): button_events = [] @@ -324,6 +325,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) + self.acc_hud_values = ext_cp.vl["MEB_ACC_01"] ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) From 34f96e79d39c7391a04e5bde8e07c80f90656ea0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:42:32 +0100 Subject: [PATCH 453/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 23d083f7f43..7fa82b4e214 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -183,13 +183,13 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - desired_gap = max(1, CS.out.vEgo * 1) # TODO gap from model, get_T_FOLLOW(hud_control.leadDistanceBars)) - distance = 50 # TODO lead distance from model, min(self.lead_distance, 100) + # desired_gap = TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) + # distance = TODO lead distance from model, min(self.lead_distance, 100) acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, desired_gap, distance, CS.esp_hold_confirmation)) + hud_control.leadDistanceBars, CS.esp_hold_confirmation)) else: lead_distance = 0 From 5c48808dacb51044db16f81d2c2ce4d11c6aae5f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:44:48 +0100 Subject: [PATCH 454/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 4217c51fc50..87ff118efc9 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -17,7 +17,7 @@ def __init__(self, CP): self.esp_hold_confirmation = False self.upscale_lead_car_signal = False self.eps_stock_values = False - self.acc_hud_values = False + self.acc_hud_stock_values = False def create_button_events(self, pt_cp, buttons): button_events = [] @@ -325,7 +325,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) - self.acc_hud_values = ext_cp.vl["MEB_ACC_01"] + self.acc_hud_stock_values = ext_cp.vl["MEB_ACC_01"] ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) From d1b7f43d4d68d97499433aacc02e32d3ad297f59 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:45:04 +0100 Subject: [PATCH 455/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 7fa82b4e214..4b396411fe3 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -189,7 +189,7 @@ def update(self, CC, CS, now_nanos): acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, CS.esp_hold_confirmation)) + hud_control.leadDistanceBars, CS.esp_hold_confirmation, CS.acc_hud_stock_values)) else: lead_distance = 0 From ff34745c02876aa56c1349be4fd8ad5cfbcd998b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:49:20 +0100 Subject: [PATCH 456/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 6acd780c943..95af293491b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -183,7 +183,7 @@ def get_desired_gap(distance_bars, desired_gap, current_gap_signal): return gap -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, desired_gap, distance, esp_hold): +def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, esp_hold, distance, desired_gap): values = { "ACC_Status_ACC": acc_control, From f36ee2837dbad1c520f78f560202a2258d8c8e7f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:57:52 +0100 Subject: [PATCH 457/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 4b396411fe3..1f6e2943dac 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -183,13 +183,14 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - # desired_gap = TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) - # distance = TODO lead distance from model, min(self.lead_distance, 100) + # TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) + desired_gap = 0 #next((gap for gap in (CS.acc_hud_stock_values.get(f"Zeitluecke_{i}") for i in range(1, 6)) if gap), 0) # just pass through active gap signal for now + distance = CS.acc_hud_stock_values["Lead_Distance"] # TODO lead distance from model, min(self.lead_distance, 100) acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, CS.esp_hold_confirmation, CS.acc_hud_stock_values)) + hud_control.leadDistanceBars, CS.esp_hold_confirmation, distance, desired_gap)) else: lead_distance = 0 From 56c2b608e2e9373e98821233695969bdf90e3c4d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 00:04:48 +0100 Subject: [PATCH 458/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 95af293491b..345b0df0ef4 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,6 +1,7 @@ from opendbc.car.common.conversions import Conversions as CV ACC_CTRL_ERROR = 6 +ACC_CTRL_DISABLE = 5 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 ACC_CTRL_ENABLED = 2 @@ -73,7 +74,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): +def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override, disabling): if acc_faulted: acc_control = ACC_CTRL_ERROR # error state @@ -82,6 +83,8 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri acc_control = ACC_CTRL_OVERRIDE # overriding else: acc_control = ACC_CTRL_ACTIVE # active long control state + elif disabling: + acc_control = ACC_CTRL_DISABLE # disabling long control (keeps radar happy?) elif main_switch_on: acc_control = ACC_CTRL_ENABLED # long control ready else: From 711717c23d63963b267138e3e15c527b4c8a9633 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 00:11:55 +0100 Subject: [PATCH 459/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 1f6e2943dac..23aead969f3 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -29,6 +29,7 @@ def __init__(self, dbc_names, CP): self.steering_power_last = 0 self.accel_last = 0 self.long_override_counter = 0 + self.long_disabled_counter = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -141,16 +142,21 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: # Logic to prevent car error with EPB: - # * send a few frames of HMS RAMP RELEASE command at the very begin of long override + # * send a few frames of HMS RAMP RELEASE command at the very begin of long override + # * a good handling of ACC and HMS states keeps car and radar happy in a non faulted state accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel + + # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = self.long_override_counter + 1 if long_override else 0 - # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override_begin = True if long_override and self.long_override_counter < 5 else False + # prevents radar faults / retesting + self.long_disabled_counter = self.long_disabled_counter + 1 if not CC.enabled else 0 + long_disabling = True if not CC.enabled and self.long_disabled_counter < 5 else False acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, long_override) + CS.esp_hold_confirmation, long_override, long_disabling) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, long_override, long_override_begin) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, From 514692c13fd626d42bff43e5a428b07a41fa4050 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 00:18:08 +0100 Subject: [PATCH 460/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 23aead969f3..7abd9625673 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -149,11 +149,11 @@ def update(self, CC, CS, now_nanos): # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override = CC.cruiseControl.override or CS.out.gasPressed - self.long_override_counter = self.long_override_counter + 1 if long_override else 0 - long_override_begin = True if long_override and self.long_override_counter < 5 else False + self.long_override_counter = (self.long_override_counter + 1) if long_override else 0 + long_override_begin = long_override and self.long_override_counter < 5 # prevents radar faults / retesting - self.long_disabled_counter = self.long_disabled_counter + 1 if not CC.enabled else 0 - long_disabling = True if not CC.enabled and self.long_disabled_counter < 5 else False + self.long_disabled_counter = (self.long_disabled_counter + 1) if not CC.enabled else 0 + long_disabling = not CC.enabled and self.long_disabled_counter < 5 acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, long_override, long_disabling) From 4593a5034b18a4adb460ff0907a096ef28d47eaf Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:30:44 +0100 Subject: [PATCH 461/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 7abd9625673..66d3171d4e4 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -149,10 +149,10 @@ def update(self, CC, CS, now_nanos): # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override = CC.cruiseControl.override or CS.out.gasPressed - self.long_override_counter = (self.long_override_counter + 1) if long_override else 0 + self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 long_override_begin = long_override and self.long_override_counter < 5 # prevents radar faults / retesting - self.long_disabled_counter = (self.long_disabled_counter + 1) if not CC.enabled else 0 + self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 long_disabling = not CC.enabled and self.long_disabled_counter < 5 acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, From 34bfc4454c0215a1e7584456c7dae7cf1b38868c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:33:47 +0100 Subject: [PATCH 462/653] Update vw_meb.dbc a little bit less of long distance for a safer distance --- opendbc/dbc/vw_meb.dbc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 119e455035f..19da6f8726e 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1595,22 +1595,22 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-5.6) [0|200] "Unit_Meter" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX From 5b21a69ea06bddc610b25b00ff2f7a2b4945884f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:53:28 +0100 Subject: [PATCH 463/653] Update carcontroller.py get this out again, no effect and let it be now --- opendbc/car/volkswagen/carcontroller.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 66d3171d4e4..33721e74715 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -143,7 +143,6 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: # Logic to prevent car error with EPB: # * send a few frames of HMS RAMP RELEASE command at the very begin of long override - # * a good handling of ACC and HMS states keeps car and radar happy in a non faulted state accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel @@ -151,9 +150,6 @@ def update(self, CC, CS, now_nanos): long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 long_override_begin = long_override and self.long_override_counter < 5 - # prevents radar faults / retesting - self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 - long_disabling = not CC.enabled and self.long_disabled_counter < 5 acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, long_override, long_disabling) @@ -190,8 +186,12 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: # TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) - desired_gap = 0 #next((gap for gap in (CS.acc_hud_stock_values.get(f"Zeitluecke_{i}") for i in range(1, 6)) if gap), 0) # just pass through active gap signal for now - distance = CS.acc_hud_stock_values["Lead_Distance"] # TODO lead distance from model, min(self.lead_distance, 100) + # TODO lead distance from model + # For now: pass through active gap signal and distance + desired_gap = next((gap for gap in (CS.acc_hud_stock_values.get(f"Zeitluecke_{i}") for i in range(1, 6)) if gap), 0) + distance = CS.acc_hud_stock_values["Lead_Distance"] + if distance == 0 and hud_control.leadVisible: + distance = 40 acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) From 8432a397531760610433f78e53d06b3a0e3f6a05 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:59:22 +0100 Subject: [PATCH 464/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 33721e74715..25a8b24a406 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -29,7 +29,6 @@ def __init__(self, dbc_names, CP): self.steering_power_last = 0 self.accel_last = 0 self.long_override_counter = 0 - self.long_disabled_counter = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -152,7 +151,7 @@ def update(self, CC, CS, now_nanos): long_override_begin = long_override and self.long_override_counter < 5 acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, long_override, long_disabling) + CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, long_override, long_override_begin) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, From 1b13bf2579c26d16e08b3bf3013630aa73133ca0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:59:52 +0100 Subject: [PATCH 465/653] Update mebcan.py away with this --- opendbc/car/volkswagen/mebcan.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 345b0df0ef4..647585d6e6b 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,7 +1,6 @@ from opendbc.car.common.conversions import Conversions as CV ACC_CTRL_ERROR = 6 -ACC_CTRL_DISABLE = 5 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 ACC_CTRL_ENABLED = 2 @@ -83,8 +82,6 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri acc_control = ACC_CTRL_OVERRIDE # overriding else: acc_control = ACC_CTRL_ACTIVE # active long control state - elif disabling: - acc_control = ACC_CTRL_DISABLE # disabling long control (keeps radar happy?) elif main_switch_on: acc_control = ACC_CTRL_ENABLED # long control ready else: From 65f22e55def2f6f4f9d06cb2b17b5465d32026e5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:07:24 +0100 Subject: [PATCH 466/653] Update carcontroller.py static --- opendbc/car/volkswagen/carcontroller.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 25a8b24a406..3a20aca227f 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -184,13 +184,8 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: - # TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) - # TODO lead distance from model - # For now: pass through active gap signal and distance - desired_gap = next((gap for gap in (CS.acc_hud_stock_values.get(f"Zeitluecke_{i}") for i in range(1, 6)) if gap), 0) - distance = CS.acc_hud_stock_values["Lead_Distance"] - if distance == 0 and hud_control.leadVisible: - distance = 40 + desired_gap = max(1, CS.out.vEgo * 1.5) # TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) + distance = 30 if hud_control.leadVisible else 0 # TODO lead distance from model acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) From c90a4c8133c48a4a9cc01edc53a4145789e82cb1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:08:01 +0100 Subject: [PATCH 467/653] Update carstate.py away with this for now --- opendbc/car/volkswagen/carstate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 87ff118efc9..8fefc12cfff 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -17,7 +17,6 @@ def __init__(self, CP): self.esp_hold_confirmation = False self.upscale_lead_car_signal = False self.eps_stock_values = False - self.acc_hud_stock_values = False def create_button_events(self, pt_cp, buttons): button_events = [] @@ -325,7 +324,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) - self.acc_hud_stock_values = ext_cp.vl["MEB_ACC_01"] ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) From 04e2ce883ebc0bb6dc757f5320ce15e7626c1b6a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:25:03 +0100 Subject: [PATCH 468/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 647585d6e6b..b89e2ec15ae 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -195,7 +195,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed "Lead_Type": 3 if lead_visible else 0, # displaying a car "Lead_Distance": distance if lead_visible else 0, # hud distance of object - "ACC_Enabled": 1 if acc_control == ACC_HUD_ACTIVE else 0, + "ACC_Enabled": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour From 87930b73afa79531bd95fd8eea5403050bf44d63 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:29:52 +0100 Subject: [PATCH 469/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b89e2ec15ae..6a1624a3db8 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -73,7 +73,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu return packer.make_can_msg("GRA_ACC_01", bus, values) -def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override, disabling): +def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): if acc_faulted: acc_control = ACC_CTRL_ERROR # error state From 4981f6859e419a5b347ddac41b6aa82c584b81c5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:33:18 +0100 Subject: [PATCH 470/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 6a1624a3db8..db1a8dba8e4 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -197,7 +197,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Lead_Distance": distance if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, - "ACC_AKTIV_regelt": 1 if acc_control == ACC_HUD_ACTIVE else 0, + "ACC_AKTIV_regelt": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap, 1), # desired distance to lead object for distance bar 1 From 17299b35e63d60db6405339a7bcd5190cccfe2b5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:37:40 +0100 Subject: [PATCH 471/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index db1a8dba8e4..de4b75f1393 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -197,7 +197,7 @@ def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, di "Lead_Distance": distance if lead_visible else 0, # hud distance of object "ACC_Enabled": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, - "ACC_AKTIV_regelt": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, + "Street_Color": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # light grey (1) or dark (0) street "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap, 1), # desired distance to lead object for distance bar 1 From fee695c39df68313f979068ceab60eef282fd439 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 17:38:02 +0100 Subject: [PATCH 472/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 19da6f8726e..d67bae30515 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1656,7 +1656,7 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Unknown_09 : 262|1@0+ (1,0) [0|3] "" XXX SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_AKTIV_regelt : 267|1@0+ (1,0) [0|1] "" XXX + SG_ Street_Color : 267|1@0+ (1,0) [0|1] "" XXX SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX SG_ SET_ME_0X6A : 273|8@1+ (1,0) [0|7] "" XXX From 59961ea5ad80f2290e8ddc9b422ae7beb2546ae7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:08:39 +0100 Subject: [PATCH 473/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index f3cdccd3af0..45345c3a772 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -76,6 +76,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: ret.steerActuatorDelay = 0.1 + ret.radarTimeStep = (1.0 / 25) # 25Hz else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From 242170e3244996554e91c120e781a3d9f3510e75 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:14:59 +0100 Subject: [PATCH 474/653] Update interface.py get this out again depracated --- opendbc/car/volkswagen/interface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 45345c3a772..f3cdccd3af0 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -76,7 +76,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: ret.steerActuatorDelay = 0.1 - ret.radarTimeStep = (1.0 / 25) # 25Hz else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From cff467dc667a9286ebebf9876731cdb2d2be04e7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:33:13 +0100 Subject: [PATCH 475/653] Update carstate.py prepare emergency assist status tracking --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 8fefc12cfff..7f9fd8af95d 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -286,7 +286,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # VW Emergency Assist status tracking and mitigation self.eps_stock_values = pt_cp.vl["LH_EPS_03"] - #ret.carFaultedNonCritical = TODO + #ret.carFaultedNonCritical = pt_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # prepared, not tested # Update gas, brakes, and gearshift. ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 From 6e93f5beb98da7413f397cb808ec9854bad1fd2f Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:38:28 +0100 Subject: [PATCH 476/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 7f9fd8af95d..262bd89725b 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -286,7 +286,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # VW Emergency Assist status tracking and mitigation self.eps_stock_values = pt_cp.vl["LH_EPS_03"] - #ret.carFaultedNonCritical = pt_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # prepared, not tested + #ret.carFaultedNonCritical = cam_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # prepared, not tested # Update gas, brakes, and gearshift. ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 From 1e8a8d01a08b919d5493a5735324dc4c33dff4f7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:43:26 +0100 Subject: [PATCH 477/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index f3cdccd3af0..855519f3ed7 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -88,6 +88,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 + #ret.startAccel = 1.25 # to check ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From bbc0ed64997fa91bb7c1259e4cd12fce5466107e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 15:06:20 +0100 Subject: [PATCH 478/653] Update interface.py for testing --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 855519f3ed7..4aed29b5de2 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -88,7 +88,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 - #ret.startAccel = 1.25 # to check + ret.startAccel = 1.25 # to check ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 6a72e87db69c7a9744c45a94d4c30794c146686b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:54:03 +0100 Subject: [PATCH 479/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 3a20aca227f..983e5af01fb 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -29,6 +29,7 @@ def __init__(self, dbc_names, CP): self.steering_power_last = 0 self.accel_last = 0 self.long_override_counter = 0 + self.long_disabled_counter = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -149,11 +150,14 @@ def update(self, CC, CS, now_nanos): long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 long_override_begin = long_override and self.long_override_counter < 5 + + self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 + long_disabling = not CC.enabled and self.long_disabled_counter < 5 acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, - CS.esp_hold_confirmation, long_override, long_override_begin) + CS.esp_hold_confirmation, long_override, long_override_begin, long_disabling) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, long_override, CS.travel_assist_available)) From 79468076f3652b08e24b692c271cd95628129ad1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 17:56:23 +0100 Subject: [PATCH 480/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index de4b75f1393..0e4bf1c75df 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -90,11 +90,16 @@ def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, overri return acc_control -def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, override_begin): +def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, override_begin, long_disabling): # warning: car is reacting to hold mechanic even with long control off - if acc_faulted or not long_active: + if acc_faulted: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request + elif not long_active: + if long_disabling: + acc_hold_type = ACC_HMS_RAMP_RELEASE + else: + acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: if override_begin: acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed, 1 frame is enough) From a7f559f751780ce735fbc760a61c3c62e463cc86 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:07:59 +0100 Subject: [PATCH 481/653] Update mebcan.py --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 0e4bf1c75df..85aae6d2811 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -97,12 +97,12 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif not long_active: if long_disabling: - acc_hold_type = ACC_HMS_RAMP_RELEASE + acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests right after disabling long control (prevents car error with EPB at low speed) else: acc_hold_type = ACC_HMS_NO_REQUEST # no hold request elif override: if override_begin: - acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed, 1 frame is enough) + acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed) else: acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request elif starting: From e90375ae90f205648b462afe1d9e92c79bf57045 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 18:10:03 +0100 Subject: [PATCH 482/653] Update carcontroller.py --- opendbc/car/volkswagen/carcontroller.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 983e5af01fb..f13a8c2b875 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -143,6 +143,7 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: # Logic to prevent car error with EPB: # * send a few frames of HMS RAMP RELEASE command at the very begin of long override + # * send a few frames of HMS RAMP RELEASE command right at the end of active long control accel = clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel @@ -151,6 +152,7 @@ def update(self, CC, CS, now_nanos): self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 long_override_begin = long_override and self.long_override_counter < 5 + # 1 frame of long_disabling is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 long_disabling = not CC.enabled and self.long_disabled_counter < 5 From f657bc826180c7f4db28f06c5e1d8c8c7ee1b839 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:39:00 +0100 Subject: [PATCH 483/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 4aed29b5de2..4d7ba288a0f 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -88,7 +88,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 - ret.startAccel = 1.25 # to check + ret.startAccel = 1.0 ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 3dfd47e25a7c22cb5405142a3874223d21ed36fe Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 28 Nov 2024 17:36:42 +0100 Subject: [PATCH 484/653] Update mebcan.py add information for HCA_03 --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 85aae6d2811..f32edf00f84 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -23,8 +23,8 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, p values = { "Curvature": abs(apply_curvature) * CV.RAD_TO_DEG, # in deg/m "VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, - "Power": power if lkas_enabled else 0, - "Power_Boost": 1 if power_boost and lkas_enabled else 0, + "Power": power if lkas_enabled else 0, # maximum working value is 127, but observed max value with VW travel assist is 125 + "Power_Boost": 1 if power_boost and lkas_enabled else 0, # this bit has not been observed with VW travel assist yet, keep it separated from POWER for now "Active": lkas_enabled, "Request": lkas_enabled, "Standby": not lkas_enabled, From e8577840ec9d9ee34412d718481959bc655bd171 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 28 Nov 2024 17:49:03 +0100 Subject: [PATCH 485/653] Update interface.py remove this again here, will test further in another branch --- opendbc/car/volkswagen/interface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 4d7ba288a0f..f3cdccd3af0 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -88,7 +88,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.MEB: ret.longitudinalActuatorDelay = 0.1 - ret.startAccel = 1.0 ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From d22b912d6b071b8cff88ad426bf3dac929afb958 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 29 Nov 2024 08:43:12 +0100 Subject: [PATCH 486/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index d67bae30515..3d45d116456 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1552,7 +1552,7 @@ BO_ 771 HCA_03: 24 XXX SG_ Unknown_02 : 15|1@1+ (1,0) [0|1] "" XXX SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX SG_ Power_Boost : 23|1@1+ (1,0) [0|1] "" XXX - SG_ Curvature : 24|15@1+ (0.00036,0) [0|200] "Unit_deg/m" XXX + SG_ Curvature : 24|15@1+ (0.0000067,0) [0|0.219] "Unit_rad/m" XXX SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX From e6beb400ebb0fa9005b1092f544363ca73342439 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 29 Nov 2024 10:19:20 +0100 Subject: [PATCH 487/653] Update mebcan.py remove conversion --- opendbc/car/volkswagen/mebcan.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index f32edf00f84..a75e7c69b6c 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -21,7 +21,7 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, power_boost): # active lateral control deactivates active steering wheel centering values = { - "Curvature": abs(apply_curvature) * CV.RAD_TO_DEG, # in deg/m + "Curvature": abs(apply_curvature), # in rad/m "VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, "Power": power if lkas_enabled else 0, # maximum working value is 127, but observed max value with VW travel assist is 125 "Power_Boost": 1 if power_boost and lkas_enabled else 0, # this bit has not been observed with VW travel assist yet, keep it separated from POWER for now From 6df1b8ed44b823f27d26b5c7f620e13d93f51db9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Fri, 29 Nov 2024 22:39:18 +0100 Subject: [PATCH 488/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index f3cdccd3af0..8541df7b4ea 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerActuatorDelay = 0.1 + ret.steerActuatorDelay = 0.3 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From 897683a600e570ea40044fa31546185d9ef70d16 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 30 Nov 2024 09:42:50 +0100 Subject: [PATCH 489/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 8541df7b4ea..1a3253c7e61 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerActuatorDelay = 0.3 + ret.steerActuatorDelay = 0.2 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From 3d6df87869170e0ff4c1d526a1a3526df3b2f2b9 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 2 Dec 2024 21:36:46 +0100 Subject: [PATCH 490/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 262bd89725b..cc8b60c7a9d 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -276,7 +276,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. # LWI_01, MEP_EPS_01 steering angle differs from real steering angle! Do not use - ret.steeringAngleDeg = pt_cp.vl["LH_EPS_03"]["EPS_Berechneter_LW"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_BLW"])] + ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE From bcc8dd1c160c9188455abc47dff0d2e39cd69382 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 2 Dec 2024 21:41:09 +0100 Subject: [PATCH 491/653] Update carstate.py --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index cc8b60c7a9d..2b7edbe1514 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -275,7 +275,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.standstill = ret.vEgoRaw == 0 # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. - # LWI_01, MEP_EPS_01 steering angle differs from real steering angle! Do not use + # LWI_01, MEP_EPS_01 steering angle differs from real steering angle (dynamic steering) ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] From 6477e8e289911ab75a01d825a6acc14243371254 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:52:11 +0100 Subject: [PATCH 492/653] Update values.py add car params cupra born --- opendbc/car/volkswagen/values.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d24e8dd7ca4..1f43dce4a9a 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -455,7 +455,8 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - VolkswagenCarSpecs(mass=1950, wheelbase=2.77, steerRatio=15.9), + # most of these car parameters are rough approximations + VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, rotationalInertia=5228, centerToFront=1383, tireStiffnessFront=120000, tireStiffnessRear=100000), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From 3c2e6d706579f901abf84133be34cd7d1d4f91ad Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:52:44 +0100 Subject: [PATCH 493/653] Update interface.py change actuator delays a little bit for MEB --- opendbc/car/volkswagen/interface.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 1a3253c7e61..14e4863b8cd 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -75,7 +75,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerActuatorDelay = 0.2 + ret.steerActuatorDelay = 0.15 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] @@ -87,7 +87,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle if ret.flags & VolkswagenFlags.MEB: - ret.longitudinalActuatorDelay = 0.1 + ret.longitudinalActuatorDelay = 0.15 ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From f795ba8537dc86161bbd1297682aec6e236a4416 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 19:55:00 +0100 Subject: [PATCH 494/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 1f43dce4a9a..d76107b8fbd 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -455,7 +455,7 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - # most of these car parameters are rough approximations + # these car parameters are rough approximations and properties for CUPRA BORN 77kWh VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, rotationalInertia=5228, centerToFront=1383, tireStiffnessFront=120000, tireStiffnessRear=100000), chassis_codes={"K1"}, wmis={WMI.SEAT}, From 640b1ca9c6f25129ee63241c5cf7e25f8f6856e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 20:03:08 +0100 Subject: [PATCH 495/653] Update values.py adaption car params cupra born --- opendbc/car/volkswagen/values.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d76107b8fbd..3caf7654872 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -455,8 +455,8 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - # these car parameters are rough approximations and properties for CUPRA BORN 77kWh - VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, rotationalInertia=5228, centerToFront=1383, tireStiffnessFront=120000, tireStiffnessRear=100000), + # for CUPRA BORN 77kWh 170 kW, tire stiffness is an approximation + VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFront=1383, tireStiffnessFactor=1.2), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From bdb9ab72ef1b514b5ff05677019ede09310db5db Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 20:16:39 +0100 Subject: [PATCH 496/653] Update values.py fix car param --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 3caf7654872..f4d1c36eb31 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -456,7 +456,7 @@ class CAR(Platforms): VWCarDocs("CUPRA Born 2021"), ], # for CUPRA BORN 77kWh 170 kW, tire stiffness is an approximation - VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFront=1383, tireStiffnessFactor=1.2), + VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.2), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From ee3eced34a97722f2b912fb156034477483da093 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 3 Dec 2024 20:55:11 +0100 Subject: [PATCH 497/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index f4d1c36eb31..d160e633ad5 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -455,7 +455,7 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - # for CUPRA BORN 77kWh 170 kW, tire stiffness is an approximation + # for CUPRA BORN 77kWh 170 kW, tire stiffness and centerToFrontRatio are approximations VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.2), chassis_codes={"K1"}, wmis={WMI.SEAT}, From 13e6aa96b693a9b23bb26bf19ec64d63873b1b47 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 4 Dec 2024 17:02:04 +0100 Subject: [PATCH 498/653] Update values.py change tireStiffnessFactor a little bit --- opendbc/car/volkswagen/values.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d160e633ad5..393b6dd458c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -455,8 +455,8 @@ class CAR(Platforms): [ VWCarDocs("CUPRA Born 2021"), ], - # for CUPRA BORN 77kWh 170 kW, tire stiffness and centerToFrontRatio are approximations - VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.2), + # for CUPRA BORN 77kWh 170 kW, tireStiffnessFactor and centerToFrontRatio are approximations + VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.1), chassis_codes={"K1"}, wmis={WMI.SEAT}, ) From eadebfad8f404f513b71e54118dd4df35e8f594c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 4 Dec 2024 18:25:09 +0100 Subject: [PATCH 499/653] Update interface.py higher long act delay --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 14e4863b8cd..ed1846070ad 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -87,7 +87,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle if ret.flags & VolkswagenFlags.MEB: - ret.longitudinalActuatorDelay = 0.15 + ret.longitudinalActuatorDelay = 0.2 ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs if experimental_long: From 60403312cbeda3466af8bc4bc3bc779b6881e95a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 4 Dec 2024 19:34:28 +0100 Subject: [PATCH 500/653] Update vw_meb.dbc further scaling of long accel --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 3d45d116456..5901901e347 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1498,7 +1498,7 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ Lateral_Accel : 16|8@1+ (1,-128) [0|255] "" XXX - SG_ Longitudinal_Accel : 24|9@1- (0.0325,0) [0|255] "Unit_MeterPerSquareSecond" XXX + SG_ Longitudinal_Accel : 24|10@1+ (0.03125,-16) [0|255] "Unit_MeterPerSquareSecond" XXX SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX From 3cf77efd7d11479820c95b8f6dc1732afb6b775d Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 4 Dec 2024 21:39:09 +0100 Subject: [PATCH 501/653] Update vw_meb.dbc further rough experimental scaling of accels --- opendbc/dbc/vw_meb.dbc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 5901901e347..b89bbf57a6d 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1497,7 +1497,7 @@ BO_ 332 MEB_ESP_03: 32 XXX BO_ 258 MEB_ESP_04: 48 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Lateral_Accel : 16|8@1+ (1,-128) [0|255] "" XXX + SG_ Lateral_Accel : 16|8@1+ (0.15,-18.9) [0|255] "Unit_MeterPerSquareSecond" XXX SG_ Longitudinal_Accel : 24|10@1+ (0.03125,-16) [0|255] "Unit_MeterPerSquareSecond" XXX SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX From fc5fe6554926370685dbf730a58ad987801911e8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 7 Jan 2025 16:37:14 +0100 Subject: [PATCH 502/653] Update vw_meb.dbc adaptions for distance ranges and meb_esp_04 singals and roughly found scaling --- opendbc/dbc/vw_meb.dbc | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index b89bbf57a6d..986164dbddc 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1501,11 +1501,9 @@ BO_ 258 MEB_ESP_04: 48 XXX SG_ Longitudinal_Accel : 24|10@1+ (0.03125,-16) [0|255] "Unit_MeterPerSquareSecond" XXX SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_7 : 99|1@0+ (1,0) [0|1] "" XXX - SG_ ESP_Hold : 120|1@0+ (1,0) [0|1] "" XXX SG_ Regen_Braking : 123|1@1+ (1,0) [0|7] "" XXX - SG_ NEW_SIGNAL_6 : 171|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_5 : 180|10@1+ (1,0) [0|63] "" XXX + SG_ Standstill : 171|1@0+ (1,0) [0|1] "" XXX + SG_ Longitudinal_Speed : 181|10@1+ (0.25,0) [0|255] "Unit_KilometerPerHour" XXX BO_ 313 MEB_ESP_05: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX @@ -1595,24 +1593,24 @@ BO_ 591 MEB_Distance_01: 64 XXX SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [0|15] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [0|31] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-6) [0|200] "Unit_Meter" XXX - SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [0|1023] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [0|50] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX From 1ca85f0dd9cec4bc0f96a1c055f31804eca470a0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 8 Jan 2025 17:18:30 +0100 Subject: [PATCH 503/653] Update values.py add vw travel assist flag for dynamic detection --- opendbc/car/volkswagen/values.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index ad2aa7852d2..64630f548c7 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -174,6 +174,7 @@ class WMI(StrEnum): class VolkswagenFlags(IntFlag): # Detected flags STOCK_HCA_PRESENT = 1 + TRAVEL_ASSIST_PRESENT = 8 # Static flags PQ = 2 From d8618b6ea47edcb1e7d3e3b327647e6d12df3fd8 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 8 Jan 2025 17:21:13 +0100 Subject: [PATCH 504/653] Update interface.py add vw travel assist detection --- opendbc/car/volkswagen/interface.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index ed1846070ad..c652b558538 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -48,6 +48,9 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.networkLocation == NetworkLocation.gateway: ret.radarUnavailable = False + if 0x26B in fingerprint[2]: # MEB_TRAVEL_ASSIST_01 + ret.flags |= VolkswagenFlags.TRAVEL_ASSIST_PRESENT.value + else: # Set global MQB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] From 59e5ce6dca64bfc5ee59278d158453de1c2ed09b Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 8 Jan 2025 17:28:22 +0100 Subject: [PATCH 505/653] Update carstate.py adapt MEB VW travel assist signal to dynamic detection --- opendbc/car/volkswagen/carstate.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 2b7edbe1514..386959b5a31 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -323,7 +323,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] - self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) + self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) if self.CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT else False ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) @@ -521,6 +521,8 @@ def get_can_parsers_meb(CP): cam_messages += MebExtraSignals.fwd_radar_messages if CP.enableBsm: cam_messages += MebExtraSignals.bsm_radar_messages + if CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT: + cam_messages += MebExtraSignals.travel_assist_message return { Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), @@ -556,9 +558,11 @@ class MebExtraSignals: fwd_radar_messages = [ ("MEB_ACC_01", 17), # ("MEB_ACC_02", 50), # - ("MEB_Travel_Assist_01", 10), # #("MEB_Distance_01", 25), # ] bsm_radar_messages = [ ("MEB_Side_Assist_01", 20), ] + travel_assist_message = [ + ("MEB_Travel_Assist_01", 10), # + ] From 7644a6a78900aee5fa65bcf17fe3db5338c30a14 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 9 Jan 2025 19:29:07 +0100 Subject: [PATCH 506/653] Update vw_meb.dbc probably a status value --- opendbc/dbc/vw_meb.dbc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 986164dbddc..2e7c63cf2f4 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1585,6 +1585,7 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ Distance_Status : 13|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_ObjectID : 16|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Left_Lane_01_ObjectID : 22|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Right_Lane_01_ObjectID : 28|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX @@ -1769,6 +1770,7 @@ VAL_ 496 zFAS_Warnblinken 0 "Aus" 1 "Statisch" 2 "Taster" 3 "Statisch_ohne_WBT" VAL_ 496 STP_Primaeranz 0 "keine_Anzeige" 1 "Verfuegbar" 2 "Aktiv" 3 "Uebernahme" 4 "Aktiv_Warnung" 5 "Nicht_Verfuegbar" ; VAL_ 496 EA_Bremslichtblinken 0 "kein_Blinken" 1 "Anforderung_Bremslichtblinken" ; VAL_ 496 EA_Blinken 0 "Kein_Blinken" 1 "Wechselblinken_links" 2 "Wechselblinken_rechts" 3 "Warnblinken" 4 "Warnblinken_Taster" ; +VAL_ 591 Distance_Status 0 "Valid" 3 "Invalid"; VAL_ 619 Travel_Assist_Status 4 "enabled" 0 "disabled" 2 "ready" 3 "pre_ready"; VAL_ 619 Travel_Assist_Request 4 "enable" 3 "disable" 0 "no_request" 1 "error"; VAL_ 619 Travel_Assist_Available 0 "not_available" 1 "available"; From e51760edbdd828c82a8441c1d49de5438806ee3a Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 11 Jan 2025 18:55:22 +0100 Subject: [PATCH 507/653] Update values.py docs adaption meb --- opendbc/car/volkswagen/values.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 64630f548c7..7e3052e21ef 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -237,7 +237,7 @@ class Footnote(Enum): "in software, but doesn't yet have a harness available from the comma store.", Column.HARDWARE) VW_MEB = CarFootnote( - "For MEB plattform only steering is supported by openpilot.", + "Volkswagen MEB plattform is using CAN-FD, which is supported by comma 3x or red panda.", Column.HARDWARE) @@ -254,9 +254,6 @@ def init_make(self, CP: structs.CarParams): if CP.carFingerprint in (CAR.VOLKSWAGEN_CRAFTER_MK2, CAR.VOLKSWAGEN_TRANSPORTER_T61): self.car_parts = CarParts([Device.threex_angled_mount, CarHarness.vw_j533]) - if CP.carFingerprint in (CAR.CUPRA_BORN_MK1): - self.footnotes.append(Footnote.VW_MEB) - if abs(CP.minSteerSpeed - CarControllerParams.DEFAULT_MIN_STEER_SPEED) < 1e-3: self.min_steer_speed = 0 @@ -266,7 +263,7 @@ def init_make(self, CP: structs.CarParams): # FW_VERSIONS for that existing CAR. class CAR(Platforms): - config: VolkswagenMQBPlatformConfig | VolkswagenPQPlatformConfig + config: VolkswagenMQBPlatformConfig | VolkswagenPQPlatformConfig | VolkswagenMEBPlatformConfig VOLKSWAGEN_ARTEON_MK1 = VolkswagenMQBPlatformConfig( [ @@ -453,9 +450,7 @@ class CAR(Platforms): wmis={WMI.SEAT}, ) CUPRA_BORN_MK1 = VolkswagenMEBPlatformConfig( - [ - VWCarDocs("CUPRA Born 2021"), - ], + [VWCarDocs("CUPRA Born 2021", footnotes=[Footnote.VW_MEB])], # for CUPRA BORN 77kWh 170 kW, tireStiffnessFactor and centerToFrontRatio are approximations VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.1), chassis_codes={"K1"}, From fc2e061f2a0b3ac8bdcf01ed481f2c0afa4826e3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 11 Jan 2025 19:36:17 +0100 Subject: [PATCH 508/653] Update values.py add cars id.3, id.4 (id.5 shares id.4 chassis code) --- opendbc/car/volkswagen/values.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 7e3052e21ef..acfe4f38e08 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -325,6 +325,31 @@ class CAR(Platforms): chassis_codes={"5G", "AU", "BA", "BE"}, wmis={WMI.VOLKSWAGEN_MEXICO_CAR, WMI.VOLKSWAGEN_EUROPE_CAR}, ) + VOLKSWAGEN_ID3_MK1 = VolkswagenMEBPlatformConfig( + [VWCarDocs("Volkswagen ID.3 2020-2023", footnotes=[Footnote.VW_MEB])], + # Für den ID.3 Pro S mit 77 kWh Batterie: ca. 1.935 kg + # 45 kWh: ca. 1.772 kg + # 58 kWh: ca. 1.812 kg + VolkswagenCarSpecs(mass=1935, wheelbase=2.770), + chassis_codes={"E1"}, + wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, + ) + VOLKSWAGEN_ID4_MK1 = VolkswagenMEBPlatformConfig( + [VWCarDocs("Volkswagen ID.4 2020-2023", footnotes=[Footnote.VW_MEB])], + # Für den ID.4 Pro Performance mit 77 kWh Batterie: ca. 2.099 kg + # 52 kWh: ca. 1.966 kg + VolkswagenCarSpecs(mass=2099, wheelbase=2.771), + chassis_codes={"E2"}, + wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, + ) + #VOLKSWAGEN_ID5_MK1 = VolkswagenMEBPlatformConfig( + # [VWCarDocs("Volkswagen ID.5 2022-", footnotes=[Footnote.VW_MEB])], + # # Für den ID.5 Pro 77 kWh: ca. 2.143 kg + # # 55 kWh: ca. 2.092 kg + # VolkswagenCarSpecs(mass=2143, wheelbase=2.770), + # chassis_codes={"E2"}, # yes... ID.5 and ID.4 share the same chassis code + # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, + #) VOLKSWAGEN_JETTA_MK6 = VolkswagenPQPlatformConfig( [VWCarDocs("Volkswagen Jetta 2015-18")], VolkswagenCarSpecs(mass=1518, wheelbase=2.65, minSteerSpeed=50 * CV.KPH_TO_MS, minEnableSpeed=20 * CV.KPH_TO_MS), @@ -450,7 +475,7 @@ class CAR(Platforms): wmis={WMI.SEAT}, ) CUPRA_BORN_MK1 = VolkswagenMEBPlatformConfig( - [VWCarDocs("CUPRA Born 2021", footnotes=[Footnote.VW_MEB])], + [VWCarDocs("CUPRA Born 2021-", footnotes=[Footnote.VW_MEB])], # for CUPRA BORN 77kWh 170 kW, tireStiffnessFactor and centerToFrontRatio are approximations VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.1), chassis_codes={"K1"}, From bf82cfb26e56d786d494ad0ab79b88fc03b7a0a5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Sat, 11 Jan 2025 20:38:55 +0100 Subject: [PATCH 509/653] Update fingerprints.py prepare volkswagen ID.x models --- opendbc/car/volkswagen/fingerprints.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/opendbc/car/volkswagen/fingerprints.py b/opendbc/car/volkswagen/fingerprints.py index 0154112c6d0..9a84b1409d5 100644 --- a/opendbc/car/volkswagen/fingerprints.py +++ b/opendbc/car/volkswagen/fingerprints.py @@ -346,6 +346,21 @@ b'\xf1\x875Q0907572S \xf1\x890780', ], }, + # preparation for ID.x models, firmwares have to be verified + CAR.VOLKSWAGEN_ID3_MK1: { + (Ecu.fwdRadar, 0x757, None): [ + b'\xf1\x871EA907572H \xf1\x890234', + b'\xf1\x871EA907572H \xf1\x890236', + ], + }, + CAR.VOLKSWAGEN_ID4_MK1: { + (Ecu.fwdRadar, 0x757, None): [ + b'\xf1\x871EA907572J \xf1\x890235', + b'\xf1\x871EA907572J \xf1\x890237', + b'\xf1\x871EA907572K \xf1\x890236', # ID.5 + b'\xf1\x871EA907572K \xf1\x890238', # ID.5 + ], + }, CAR.VOLKSWAGEN_JETTA_MK6: { (Ecu.srs, 0x715, None): [ b'\xf1\x875C0959655M \xf1\x890726\xf1\x82\t00NB1108--------24', From 30dc037e5a69115c745d4ad81b46899ba8dcb9c1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 20 Jan 2025 18:51:57 +0100 Subject: [PATCH 510/653] Update values.py user intervention steering power reduction in percent --- opendbc/car/volkswagen/values.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 42a0a61f9c2..e198ade110a 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -74,6 +74,7 @@ def __init__(self, CP): self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.6 Nm + self.STEERING_POWER_USER_REDUCTION = 30 # HCA_03 driver intervention power reduction in percent self.STEERING_POWER_MAX = 125 # HCA_03 maximum steering power self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps From 00e5861bc87693ac2aa03e28b24e09c58f91f504 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 20 Jan 2025 18:53:15 +0100 Subject: [PATCH 511/653] Update carcontroller.py steering power reduction by user intervention in percent --- opendbc/car/volkswagen/carcontroller.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index f7c82b63ba4..73589b89220 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -64,8 +64,9 @@ def update(self, CC, CS, now_nanos): if self.steering_power_last < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) - elif CS.out.steeringPressed and self.steering_power_last > self.CCP.STEERING_POWER_MIN: # user action results in decreasing the steering power - steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) + elif CS.out.steeringPressed: # user action results in decreasing the steering power + steering_power_user = max(steering_power_target / 100 * (100 - self.CCP.STEERING_POWER_USER_REDUCTION), self.CCP.STEERING_POWER_MIN) + steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, steering_power_user) else: # following desired target if self.steering_power_last < steering_power_target: steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, steering_power_target) From c0a1f65e771beb0b56788c594a787eeb5b41e0cb Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 20 Jan 2025 18:57:14 +0100 Subject: [PATCH 512/653] Update carcontroller.py increase steering power for increasing curvature only at normal driving speeds --- opendbc/car/volkswagen/carcontroller.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 73589b89220..229aaa52478 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -59,7 +59,9 @@ def update(self, CC, CS, now_nanos): steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) steering_curvature_diff = abs(apply_curvature - current_curvature) - steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_diff + abs(apply_curvature)) + steering_curvature_increase = max(0, abs(apply_curvature) - abs(current_curvature)) + steering_curvature_change = np.interp(CS.out.vEgoRaw, [0., 3.], [steering_curvature_diff, steering_curvature_increase]) + steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_change + abs(apply_curvature)) steering_power_target = np.clip(steering_power_target_curvature, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) if self.steering_power_last < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated From c07bb71e4d986d2cd57c102a235c62e87098a913 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Mon, 20 Jan 2025 20:04:49 +0100 Subject: [PATCH 513/653] Update values.py --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index e198ade110a..08ad578aec3 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -74,7 +74,7 @@ def __init__(self, CP): self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.6 Nm - self.STEERING_POWER_USER_REDUCTION = 30 # HCA_03 driver intervention power reduction in percent + self.STEERING_POWER_USER_REDUCTION = 40 # HCA_03 driver intervention power reduction in percent self.STEERING_POWER_MAX = 125 # HCA_03 maximum steering power self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps From c89855d3dea137e17a34220a7574093336cfe098 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 21 Jan 2025 18:31:46 +0100 Subject: [PATCH 514/653] Update values.py fix gap button value MEB --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 08ad578aec3..4404dd3865d 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -95,7 +95,7 @@ def __init__(self, CP): Button(structs.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), #Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), # there is no physical cancel button Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Hauptschalter", [1]), # main button cancels ACC operation when ACC active - Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [1]), + Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [3]), ] self.LDW_MESSAGES = { # verify TODO From 7baa478ffb3f69ca2ea3e6ca958fda3cb4f34033 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 28 Jan 2025 20:52:21 +0100 Subject: [PATCH 515/653] Update fingerprints.py comment out, just a prep --- opendbc/car/volkswagen/fingerprints.py | 28 +++++++++++++------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/opendbc/car/volkswagen/fingerprints.py b/opendbc/car/volkswagen/fingerprints.py index e7990d0cfac..86d2fdb566b 100644 --- a/opendbc/car/volkswagen/fingerprints.py +++ b/opendbc/car/volkswagen/fingerprints.py @@ -350,20 +350,20 @@ ], }, # preparation for ID.x models, firmwares have to be verified - CAR.VOLKSWAGEN_ID3_MK1: { - (Ecu.fwdRadar, 0x757, None): [ - b'\xf1\x871EA907572H \xf1\x890234', - b'\xf1\x871EA907572H \xf1\x890236', - ], - }, - CAR.VOLKSWAGEN_ID4_MK1: { - (Ecu.fwdRadar, 0x757, None): [ - b'\xf1\x871EA907572J \xf1\x890235', - b'\xf1\x871EA907572J \xf1\x890237', - b'\xf1\x871EA907572K \xf1\x890236', # ID.5 - b'\xf1\x871EA907572K \xf1\x890238', # ID.5 - ], - }, + #CAR.VOLKSWAGEN_ID3_MK1: { + # (Ecu.fwdRadar, 0x757, None): [ + # b'\xf1\x871EA907572H \xf1\x890234', + # b'\xf1\x871EA907572H \xf1\x890236', + # ], + #}, + #CAR.VOLKSWAGEN_ID4_MK1: { + # (Ecu.fwdRadar, 0x757, None): [ + # b'\xf1\x871EA907572J \xf1\x890235', + # b'\xf1\x871EA907572J \xf1\x890237', + # b'\xf1\x871EA907572K \xf1\x890236', # ID.5 + # b'\xf1\x871EA907572K \xf1\x890238', # ID.5 + # ], + #}, CAR.VOLKSWAGEN_JETTA_MK6: { (Ecu.srs, 0x715, None): [ b'\xf1\x875C0959655M \xf1\x890726\xf1\x82\t00NB1108--------24', From c6b0c0fb599587a95afe8834c40db0fef0682120 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 28 Jan 2025 20:53:01 +0100 Subject: [PATCH 516/653] Update values.py comment out, just prepped --- opendbc/car/volkswagen/values.py | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 4404dd3865d..da376ec261e 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -325,23 +325,23 @@ class CAR(Platforms): chassis_codes={"5G", "AU", "BA", "BE"}, wmis={WMI.VOLKSWAGEN_MEXICO_CAR, WMI.VOLKSWAGEN_EUROPE_CAR}, ) - VOLKSWAGEN_ID3_MK1 = VolkswagenMEBPlatformConfig( - [VWCarDocs("Volkswagen ID.3 2020-2023", footnotes=[Footnote.VW_MEB])], - # Für den ID.3 Pro S mit 77 kWh Batterie: ca. 1.935 kg - # 45 kWh: ca. 1.772 kg - # 58 kWh: ca. 1.812 kg - VolkswagenCarSpecs(mass=1935, wheelbase=2.770), - chassis_codes={"E1"}, - wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, - ) - VOLKSWAGEN_ID4_MK1 = VolkswagenMEBPlatformConfig( - [VWCarDocs("Volkswagen ID.4 2020-2023", footnotes=[Footnote.VW_MEB])], - # Für den ID.4 Pro Performance mit 77 kWh Batterie: ca. 2.099 kg - # 52 kWh: ca. 1.966 kg - VolkswagenCarSpecs(mass=2099, wheelbase=2.771), - chassis_codes={"E2"}, - wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, - ) + #VOLKSWAGEN_ID3_MK1 = VolkswagenMEBPlatformConfig( + # [VWCarDocs("Volkswagen ID.3 2020-2023", footnotes=[Footnote.VW_MEB])], + # # Für den ID.3 Pro S mit 77 kWh Batterie: ca. 1.935 kg + # # 45 kWh: ca. 1.772 kg + # # 58 kWh: ca. 1.812 kg + # VolkswagenCarSpecs(mass=1935, wheelbase=2.770), + # chassis_codes={"E1"}, + # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, + #) + #VOLKSWAGEN_ID4_MK1 = VolkswagenMEBPlatformConfig( + # [VWCarDocs("Volkswagen ID.4 2020-2023", footnotes=[Footnote.VW_MEB])], + # # Für den ID.4 Pro Performance mit 77 kWh Batterie: ca. 2.099 kg + # # 52 kWh: ca. 1.966 kg + # VolkswagenCarSpecs(mass=2099, wheelbase=2.771), + # chassis_codes={"E2"}, + # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, + #) #VOLKSWAGEN_ID5_MK1 = VolkswagenMEBPlatformConfig( # [VWCarDocs("Volkswagen ID.5 2022-", footnotes=[Footnote.VW_MEB])], # # Für den ID.5 Pro 77 kWh: ca. 2.143 kg From d6ef59bf4c9fe162a04cab5341cd652316a8989c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 28 Jan 2025 21:01:14 +0100 Subject: [PATCH 517/653] Update carcontroller.py fix data type --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 229aaa52478..d5c04c1ebc5 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -221,8 +221,8 @@ def update(self, CC, CS, now_nanos): new_actuators = actuators.as_builder() new_actuators.steer = self.apply_steer_last / self.CCP.STEER_MAX new_actuators.steerOutputCan = self.apply_steer_last - new_actuators.curvature = self.apply_curvature_last - new_actuators.accel = self.accel_last + new_actuators.curvature = float(self.apply_curvature_last) + new_actuators.accel = float(self.accel_last) self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 From 41e0b808560da3f800e3d9fddea3415f6cb681ce Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 18:34:40 +0100 Subject: [PATCH 518/653] Update vw_meb.dbc latest dbc state --- opendbc/dbc/vw_meb.dbc | 4516 ++++++++++++++++++++++++++-------------- 1 file changed, 3003 insertions(+), 1513 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 2e7c63cf2f4..31a9ba740f3 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -36,6 +36,220 @@ BS_: BU_: BAP_Tester BedienDisp_vo BedienSG_hi CGS DDA Gateway Gateway_PAG GurtMikrofon OTA_FC ZR_High ZR_LIMU ZR_MIB_TOP_ab_Gen3 ZR_Standard +BO_ 64 Airbag_01: 8 Gateway + SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway + SG_ Airbag_01_BZ : 8|4@1+ (1,0) [0|15] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway + SG_ AB_RGS_Anst : 12|4@1+ (1,0) [0|15] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Front_Crash : 16|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Heck_Crash : 17|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_SF_Crash : 18|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_SB_Crash : 19|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Rollover_Crash : 20|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Crash_Int : 21|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,Sub_Gateway,TME + SG_ AB_Lampe : 24|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Deaktiviert : 25|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_VB_deaktiviert : 26|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Systemfehler : 27|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Diagnose : 28|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Stellgliedtest : 29|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway,TME + SG_ AB_Erh_Auf_VB : 30|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Gurtwarn_VF : 32|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Gurtwarn_VB : 33|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Anzeige_Fussg : 34|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Texte_AKS : 36|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_MKB_gueltig : 39|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_MKB_Anforderung : 40|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Versorgungsspannung : 41|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Deaktivierung_HV : 42|3@1+ (1,0) [0|7] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ AB_EDR_Trigger : 45|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ AB_Belegung_VF : 47|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_Masterzeit_Offset : 53|2@1+ (5.08,0) [0|15.24] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_LowSpeedCrashErkannt : 55|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway + SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway + +BO_ 134 LWI_01: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LWI_Sensorstatus : 12|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_MFL_Abschaltung : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_QBit_Lenkradwinkel : 15|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_Lenkradwinkel : 16|13@1+ (0.0843,0) [0|800] "Unit_DegreOfArc" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradwinkel : 29|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ LWI_VZ_Lenkradw_Geschw : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ LWI_Lenkradw_Geschw : 31|9@1+ (5,0) [0|2500] "Unit_DegreOfArcPerSecon" OTA_FC,ZR_High + SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX + +BO_ 159 LH_EPS_03: 8 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_DSR_Status : 12|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_Berechneter_LW : 16|12@1+ (0.15,0) [0|613.95] "Unit_DegreOfArc" XXX + SG_ EPS_BLW_QBit : 30|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_VZ_BLW : 31|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_HCA_Status : 32|4@1+ (1,0) [0|15] "" XXX + SG_ EPS_Lenkmoment : 40|10@1+ (1,0) [0|8] "Unit_centiNewtoMeter" XXX + SG_ EPS_Lenkmoment_QBit : 54|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_VZ_Lenkmoment : 55|1@1+ (1,0) [0|1] "" XXX + SG_ EPS_Lenkungstyp : 60|4@1+ (1,0) [0|15] "" XXX + +BO_ 167 Motor_11: 8 Motor_Diesel_MQB + SG_ Motor_11_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ Motor_11_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Soll_Roh : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Ist_Summe : 22|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,SAK_MQB + SG_ MO_Mom_Traegheit_Summe : 32|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Soll_gefiltert : 42|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Schub : 52|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Status_Normalbetrieb_01 : 61|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_erste_Ungenauschwelle : 62|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_QBit_Motormomente : 63|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + +BO_ 168 Motor_12: 8 Motor_Diesel_MQB + SG_ Motor_12_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ Motor_12_BZ : 8|4@1+ (1,0) [0|15] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Mom_neg_verfuegbar : 12|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB + SG_ MO_Mom_Begr_stat : 21|9@1+ (1,0) [0|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Begr_dyn : 30|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB + SG_ MO_Momentenintegral_02 : 40|7@1+ (1,0) [0|100] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_QBit_Drehzahl_01 : 47|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB + +BO_ 173 Getriebe_11: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ GE_MMom_Soll_02 : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ GE_MMom_Vorhalt_02 : 22|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ GE_Uefkt : 32|10@1+ (0.1,0) [0|102.2] "" Vector__XXX + SG_ GE_Fahrstufe : 42|4@1+ (1,0) [0|15] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ GE_reserv_Fahrstufe : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GE_Schaltablauf : 47|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ GE_Uefkt_unplausibel : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GE_MMom_Status_02 : 50|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ GE_Status_Kraftschluss : 53|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ GE_MMom_Status : 56|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ GE_Freig_MMom_Vorhalt : 58|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GE_Verbot_Ausblendung : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GE_Zielgang : 60|4@1+ (1,0) [0|15] "" OTA_FC,ZR_High + +BO_ 184 EM1_HYB_13: 8 Gateway + SG_ EM1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Sperr_Info_WFS : 13|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_AR_aktiv : 14|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Eta_Sys : 15|9@1+ (0.2,0) [0|101.8] "Unit_PerCent" Sub_Gateway + SG_ EM1_IstStrom : 24|11@1+ (1,-1023) [-1023|1022] "Unit_Amper" Sub_Gateway + SG_ EM1_Fehler_ElAntriebFreilauf_Anf : 35|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Abregelung_Temperatur : 36|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_AnlernenElMotor_Anf : 43|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Moment_HVVerbraucher : 44|10@1+ (1,-511) [-511|511] "Unit_NewtoMeter" Sub_Gateway + SG_ EM1_Freigabe_Verfallsinfo_WFS : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ EM1_Parken_WFS_Status : 56|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ EM1_HV_betriebsbereit : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + +BO_ 190 MEB_HVEM_01: 48 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Engine_RPM_Max : 12|14@1+ (2,-9658) [0|15] "RPM" XXX + SG_ Engine_RPM_Min : 26|14@1+ (2,-10300) [0|63] "RPM" XXX + SG_ In_Motion_04 : 48|3@1+ (1,0) [0|7] "" XXX + SG_ In_Motion_03 : 52|1@0+ (1,0) [0|1] "" XXX + SG_ In_Motion_02 : 54|1@0+ (1,0) [0|1] "" XXX + SG_ Engine_Power : 56|12@1+ (0.5,-1023) [0|255] "kW" XXX + SG_ In_Motion : 68|1@1+ (1,0) [0|3] "" XXX + SG_ Standstill : 71|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_04 : 72|10@1+ (1,0) [0|255] "" XXX + SG_ Battery_Voltage : 86|12@1+ (0.2,0) [0|3] "Volt" XXX + SG_ Unknown_01 : 100|9@1+ (1,0) [0|7] "" XXX + SG_ Battery_Voltage_02 : 113|11@1+ (0.24,0) [0|127] "Volt" XXX + SG_ Engine_Status : 296|2@1+ (1,0) [0|3] "" XXX + SG_ Inactive : 300|1@0+ (1,0) [0|1] "" XXX + SG_ Inactive_02 : 303|1@0+ (1,0) [0|1] "" XXX + +BO_ 192 EM1_01: 32 XXX + SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX + +BO_ 219 AWV_03: 48 XXX + SG_ CHK : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ FCW_Active : 64|1@0+ (1,0) [0|1] "" XXX + SG_ Pre_Brake_Fill : 76|1@0+ (1,0) [0|1] "" XXX + +BO_ 247 MEB_HVEM_02: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_3 : 44|10@1+ (1,0) [0|7] "" XXX + SG_ NEW_SIGNAL_2 : 54|7@1+ (1,0) [0|3] "" XXX + +BO_ 252 ESC_51: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ AEB_Breaking_01 : 24|8@1+ (1,0) [0|255] "" XXX + SG_ AEB_Breaking_02 : 32|8@1+ (1,0) [0|255] "" XXX + SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressure : 42|9@1+ (0.195,0) [0|100] "Unit_Percent" XXX + SG_ HL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ HR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ VL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ VR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX + SG_ HL_Brake_Pressure : 152|8@1+ (1,0) [0|100] "" XXX + SG_ HR_Brake_Pressure : 160|8@1+ (1,0) [0|100] "" XXX + SG_ VL_Brake_Pressure : 168|8@1+ (1,0) [0|100] "" XXX + SG_ VR_Brake_Pressure : 176|8@1+ (1,0) [0|100] "" XXX + SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX + SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX + +BO_ 253 ESP_21: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX + SG_ ESP_Diagnose : 23|1@1+ (1,0) [0|1] "" ZR_High + SG_ ESC_v_Signal_Qualifier_High_Low : 24|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ ESP_Vorsteuerung : 28|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ OBD_Schlechtweg : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ OBD_QBit_Schlechtweg : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0|655.32] "Unit_KiloMeterPerHour" BedienSG_hi,DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ASR_Tastung_passiv : 48|1@1+ (1,0) [0|1] "" OTA_FC + SG_ ESP_Tastung_passiv : 49|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ESP_Systemstatus : 50|1@1+ (1,0) [0|1] "" OTA_FC + SG_ ASR_Schalteingriff : 51|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_QBit_v_Signal : 55|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ABS_Bremsung : 56|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ASR_Anf : 57|1@1+ (1,0) [0|1] "" ZR_High + SG_ MSR_Anf : 58|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ EBV_Eingriff : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ EDS_Eingriff : 60|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Eingriff : 61|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ ESP_ASP : 62|1@1+ (1,0) [0|1] "" ZR_High + SG_ ESC_Neutralschaltung : 63|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 258 ESC_50: 48 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Lateral_Accel : 16|8@1+ (0.15,-18.9) [0|255] "Unit_MeterPerSquareSecond" XXX + SG_ Longitudinal_Accel : 24|10@1+ (0.03125,-16) [0|255] "Unit_MeterPerSquareSecond" XXX + SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX + SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX + SG_ Regen_Braking : 123|1@1+ (1,0) [0|7] "" XXX + SG_ Standstill : 171|1@0+ (1,0) [0|1] "" XXX + SG_ Longitudinal_Speed : 181|10@1+ (0.25,0) [0|255] "Unit_KilometerPerHour" XXX + +BO_ 261 VMM_01: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 13|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 20|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 40|2@1+ (1,0) [0|3] "" XXX + SG_ Brake : 53|7@1+ (1,0) [0|3] "" XXX + +BO_ 267 Motor_51: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Accel_Pedal_Pressure : 12|9@1+ (0.4,0) [0|255] "" XXX + SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX + SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX + SG_ TSK_Limiter_ausgewaehlt : 95|1@1+ (1,0) [0|3] "" XXX + BO_ 278 ESP_10: 8 Gateway_MQB SG_ ESP_10_CRC : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB SG_ ESP_10_BZ : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB @@ -52,625 +266,713 @@ BO_ 278 ESP_10: 8 Gateway_MQB SG_ ESP_HL_Fahrtrichtung : 60|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB SG_ ESP_HR_Fahrtrichtung : 62|2@1+ (1,0) [0|3] "" Airbag_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB -BO_ 253 ESP_21: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ BR_Eingriffsmoment : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX - SG_ ESP_Diagnose : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESC_v_Signal_Qualifier_High_Low : 24|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ ESP_Vorsteuerung : 28|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ OBD_Schlechtweg : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ OBD_QBit_Schlechtweg : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESP_v_Signal : 32|16@1+ (0.01,0) [0.00|655.32] "Unit_KiloMeterPerHour" BedienSG_hi,DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ASR_Tastung_passiv : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ESP_Tastung_passiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ESP_Systemstatus : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ ASR_Schalteingriff : 51|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ ESP_QBit_v_Signal : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ABS_Bremsung : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ASR_Anf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MSR_Anf : 58|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ EBV_Eingriff : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ EDS_Eingriff : 60|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ESP_Eingriff : 61|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ ESP_ASP : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ESC_Neutralschaltung : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX +BO_ 285 LH_EPS_02: 8 Gateway_D4C7 + SG_ EPS_02_CRC : 0|8@1+ (1,0) [0|255] "" SCU_D4 + SG_ EPS_02_BZ : 8|4@1+ (1,0) [0|15] "" SCU_D4 + SG_ EPS_Notlauf : 12|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ EPS_Lastinfo : 16|8@1+ (1,0) [0|253] "Unit_Amper" Vector__XXX + SG_ EPS_Unterstuetzungsleistung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" SCU_D4 + SG_ EPS_Drehzahlreserve : 32|7@1+ (10,0) [0|1000] "Unit_DegreOfArcPerSecon" SCU_D4 + SG_ EPS_VZ_Drehzahlreserve : 39|1@1+ (1,0) [0|1] "" SCU_D4 + SG_ EPS_Leistungsanforderung : 40|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 795 ESP_24: 8 Gateway - SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ABS_Lampe : 13|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ BK_Lampe_02 : 14|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ TC_Lampe : 16|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_m_Raddrehz : 17|15@1+ (0.002,0) [0|65.278] "Unit_Hertz" Sub_Gateway - SG_ ESP_Textanzeigen_03 : 32|5@1+ (1,0) [0|31] "" Sub_Gateway - SG_ ESP_Meldungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ ESP_Wegimp_VA : 40|11@1+ (1,0) [0|2047] "" Sub_Gateway - SG_ ESP_Fehlerstatus_Wegimp : 51|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_Wegimp_Ueberlauf : 52|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_QBit_Wegimp_VA : 53|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_HDC_Geschw_Farbe : 54|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_Off_Lampe : 55|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ ESP_HDC_Regelgeschw : 56|7@1+ (0.32,0) [0.32|39.68] "Unit_KiloMeterPerHour" Sub_Gateway - SG_ ESP_BKV_Warnung : 63|1@1+ (1,0) [0|1] "" Sub_Gateway +BO_ 294 HCA_01: 8 Frontsensorik + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [18|30] "Unit_Hertz" Vector__XXX + SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX + SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar + SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ HCA_01_Enable : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Available : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX + SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar -BO_ 184 EM1_HYB_13: 8 Gateway - SG_ EM1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_Sperr_Info_WFS : 13|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_AR_aktiv : 14|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_Eta_Sys : 15|9@1+ (0.2,0) [0|101.8] "Unit_PerCent" Sub_Gateway - SG_ EM1_IstStrom : 24|11@1+ (1,-1023) [-1023|1022] "Unit_Amper" Sub_Gateway - SG_ EM1_Fehler_ElAntriebFreilauf_Anf : 35|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_Abregelung_Temperatur : 36|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_AnlernenElMotor_Anf : 43|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_Moment_HVVerbraucher : 44|10@1+ (1,-511) [-511|511] "Unit_NewtoMeter" Sub_Gateway - SG_ EM1_Freigabe_Verfallsinfo_WFS : 55|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ EM1_Parken_WFS_Status : 56|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ EM1_HV_betriebsbereit : 58|1@1+ (1,0) [0|1] "" Sub_Gateway +BO_ 299 GRA_ACC_01: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ GRA_Hauptschalter : 12|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Abbrechen : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Typ_Hauptschalter : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Limiter : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Tip_Setzen : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Tip_Hoch : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Tip_Runter : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Tip_Wiederaufnahme : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Verstellung_Zeitluecke : 20|2@1+ (1,0) [0|3] "" ZR_High + SG_ GRA_Codierung : 22|2@1+ (1,0) [0|3] "" ZR_High + SG_ GRA_Fehler : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_LIM_Taste_verfuegbar : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_Tip_Stufe_2 : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ GRA_ButtonTypeInfo : 27|3@1+ (1,0) [0|7] "" ZR_High + SG_ GRA_TravelAssist : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GRA_reserveByte4 : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ GRA_reserveByte5 : 32|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ GRA_reserveByte6 : 40|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ GRA_reserveByte7 : 48|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ GRA_reserveByte8 : 56|8@1+ (1,0) [0|255] "" Vector__XXX + +BO_ 312 IPA_01: 32 XXX + +BO_ 313 VMM_02: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Brake_Pressed_1 : 16|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX + SG_ AEB_Active : 31|1@0+ (1,0) [0|1] "" XXX + SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX + SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX + SG_ Brake_Pressure : 76|11@1+ (1,0) [0|100] "" XXX + +BO_ 317 QFK_01: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX + SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX + SG_ Steering_Angle_VZ : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Curvature : 40|15@1+ (6.7e-06,0) [0|65535] "" XXX + SG_ Curvature_VZ : 55|1@0+ (1,0) [0|1] "" XXX + SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX + +BO_ 319 PreCrash_02: 8 Gateway + SG_ PreCrash_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ PreCrash_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PreCrash_Charisma_FahrPr : 12|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PreCrash_Charisma_Status : 16|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PreCrash_Schiebedach_schliessen : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_Fenster_schliessen : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_Blinken : 20|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ SC_PreSense_FCWP : 23|1@1+ (1,0) [0|1] "" NightVision + SG_ PreCrash_Tueren_Verriegeln : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_Anforderung_AFR : 26|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ SC_PreCrash_LED : 29|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ PreCrash_FS_Pneumatik_ansteuern : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_BFS_Pneumatik_ansteuern : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_Fo_Pneumatik_ansteuern : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PreCrash_FS_Sitzlehne_verfahren : 34|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PreCrash_BFS_Sitzlehne_verfahren : 37|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PreCrash_Fo_Sitzlehne_verfahren : 40|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ PreCrash_FS_KSV_verfahren : 43|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PreCrash_BFS_KSV_verfahren : 47|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ PreCrash_Fo_KSV_verfahren : 51|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ SC_PreCrash_Warnung : 56|4@1+ (1,0) [0|15] "" NightVision + SG_ SC_PreCrash_Texte : 60|4@1+ (1,0) [0|15] "" Vector__XXX + +BO_ 332 Motor_54: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Accelerator_Pressure : 175|8@0+ (0.391,-14.467) [0|100] "Unit_Percent" XXX + +BO_ 333 ACC_18: 32 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_DynErhoehung : 14|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX + SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX + SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX + SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX + SG_ ACC_Anhalteweg : 64|11@1+ (0.01,0) [0|2046] "" XXX + SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX + SG_ SET_ME_0XFE : 80|8@1+ (1,0) [0|255] "" XXX + SG_ ACC_AKTIV_regelt : 90|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X1 : 92|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X9 : 232|4@1+ (1,0) [0|15] "" XXX + SG_ Speed : 236|11@1+ (0.1,0) [0|15] "" XXX + SG_ Accel_Boost : 248|6@1+ (1,0) [0|3] "" XXX + SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX BO_ 339 MSG_HYB_30: 8 Gateway - SG_ MSG_HYB_30_CRC : 0|8@1+ (1,0) [0|255] "" Ladegeraet_Konzern - SG_ MSG_HYB_30_BZ : 8|4@1+ (1,0) [0|15] "" Ladegeraet_Konzern + SG_ MSG_HYB_30_CRC : 0|8@1+ (1,0) [0|255] "" Ladegeraet_Konzern + SG_ MSG_HYB_30_BZ : 8|4@1+ (1,0) [0|15] "" Ladegeraet_Konzern SG_ MO_HVEM_Eskalation : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_ErwGrenzen_Anf : 13|1@1+ (1,0) [0|1] "" BMC_MLBevo + SG_ MO_ErwGrenzen_Anf : 13|1@1+ (1,0) [0|1] "" BMC_MLBevo SG_ MO_Fehler_Notentladung_Anf : 14|1@1+ (1,0) [0|1] "" Vector__XXX SG_ MO_HVEM_MaxLeistung : 15|9@1+ (50,0) [0|25450] "Unit_Watt" Vector__XXX SG_ MO_HVK_EmIstzustand : 24|8@1+ (1,0) [0|255] "" Vector__XXX SG_ MO_HVK_AntriebFehlerstatus : 37|3@1+ (1,0) [0|7] "" Vector__XXX SG_ MO_MVK_Bordnetz_Anf : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_HVK_AntriebZustand : 41|3@1+ (1,0) [0|7] "" TME + SG_ MO_HVK_AntriebZustand : 41|3@1+ (1,0) [0|7] "" TME SG_ MO_HVK_EmFehlerstatus : 44|3@1+ (1,0) [0|7] "" Vector__XXX SG_ MO_MVK_AntriebFehlerstatus : 47|3@1+ (1,0) [0|7] "" Vector__XXX SG_ MO_MVK_AntriebZustand : 50|3@1+ (1,0) [0|7] "" Vector__XXX SG_ MO_MVK_EmFehlerstatus : 53|3@1+ (1,0) [0|7] "" Vector__XXX SG_ MO_MVK_EmIstzustand : 56|8@1+ (1,0) [0|255] "" Vector__XXX -BO_ 1452 HVEM_02: 8 Gateway - SG_ HVEM_IstStrom_HVVerbraucher : 0|12@1+ (0.1,-204.7) [-204.7|204.6] "Unit_Amper" Vector__XXX - SG_ HVEM_Energie_Klima_Vorgabe_HighR : 12|3@1+ (10,0) [0|50] "Unit_WattHour" TME - SG_ HVEM_IstLeistungNA : 15|9@1+ (50,0) [0|25450] "Unit_Watt" Vector__XXX - SG_ HVEM_Leistung_Klima_Vorgabe : 24|8@1+ (50,0) [0|12650] "Unit_Watt" TME - SG_ HVEM_Nutzbare_Energie : 32|11@1+ (50,0) [0|102200] "Unit_WattHour" Ladegeraet_Konzern - SG_ HVEM_Energie_Klima_Vorgabe : 43|8@1+ (50,0) [0|12650] "Unit_WattHour" TME - SG_ HVEM_MO_MaxLeistungIgnoriert : 63|1@1+ (1,0) [0|1] "" Vector__XXX +BO_ 387 MEB_Camera_01: 64 XXX + SG_ NEW_SIGNAL_1 : 191|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 200|9@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_3 : 209|9@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_9 : 218|6@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_10 : 224|8@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_4 : 232|9@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_5 : 241|9@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_8 : 250|6@1+ (1,0) [0|63] "" XXX + SG_ Lane_Center_Offset : 256|12@1+ (0.001,-2.5) [0|255] "Unit_Meter" XXX + SG_ NEW_SIGNAL_6 : 268|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_7 : 280|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_11 : 292|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_12 : 304|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_13 : 320|8@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_14 : 332|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_15 : 344|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_16 : 356|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_17 : 368|10@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_18 : 384|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_19 : 396|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_20 : 408|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_21 : 420|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_22 : 432|5@1+ (1,0) [0|31] "" XXX + SG_ NEW_SIGNAL_23 : 448|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_24 : 460|12@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_25 : 472|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_26 : 484|12@1+ (1,0) [0|15] "" XXX -BO_ 869 NVEM_05: 8 Gateway - SG_ NVEM_05_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ NVEM_05_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ NVEM_Pilot_Info : 12|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ NVEM_P_Generator_Status : 15|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Vector__XXX - SG_ BEM_n_LLA : 24|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BEM_Anf_KL : 29|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BEM_StartStopp_Info : 30|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BEM_DFM : 32|5@1+ (3.225,0.025) [0.025|100] "" Vector__XXX - SG_ BEM_Batt_Ab : 38|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_IHEV - SG_ BEM_Hybrid_Info : 44|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ NVEM_Red_KL : 46|2@1+ (1,0) [0|3] "" TME - SG_ NVEM_Freilauf_Info : 48|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" DCDC_800V_PAG,DCDC_HV,LE_MLBevo - SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" Vector__XXX +BO_ 420 EA_01: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ EA_Parken_beibehalten_HMS : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ EA_Warnruckprofil : 28|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ EA_eCall_Anf : 31|2@1+ (1,0) [0|3] "" ZR_High + SG_ EA_Funktionsstatus : 40|4@1+ (1,0) [0|15] "" ZR_High + SG_ EA_Gurtstraffer_Anf : 44|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ EA_Anforderung_HMS : 48|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" Vector__XXX -BO_ 1442 BMS_04: 8 BMC_MLBevo - SG_ BMS_04_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ BMS_04_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ BMS_Status_ServiceDisconnect : 13|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Sub_Gateway - SG_ BMS_Status_Spgfreiheit : 14|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ BMS_OBD_Lampe_Anf : 16|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ BMS_IstModus : 17|3@1+ (1,0) [0|7] "" AWC,Gateway,Gateway_PAG,Ladegeraet_Konzern,LE1,LE2,LE2_3_MLBevo_LB,Sub_Gateway,TME - SG_ BMS_Fehlerstatus : 20|3@1+ (1,0) [0|7] "" AWC,DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway - SG_ BMS_Kapazitaet_02 : 23|11@1+ (0.2,0) [0|409.2] "Unit_AmperHour" Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway - SG_ BMS_Soll_SOC_HiRes : 53|11@1+ (0.05,0) [0|100] "Unit_PerCent" Gateway,Gateway_PAG,Sub_Gateway +BO_ 496 EA_02: 8 Gateway + SG_ EA_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ EA_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ EA_Texte : 12|4@1+ (1,0) [0|15] "" ZR_High + SG_ ACF_Lampe_Hands_Off : 16|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ EA_Infotainment_Anf : 22|2@1+ (1,0) [0|3] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ EA_Tueren_Anf : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ EA_Innenraumlicht_Anf : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ zFAS_Warnblinken : 26|2@1+ (1,0) [0|3] "" ZR_High + SG_ STP_Primaeranz : 28|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ EA_Bremslichtblinken : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ EA_Blinken : 32|3@1+ (1,0) [0|7] "" Vector__XXX + +BO_ 517 SAM_01: 8 XXX + SG_ Brake_Light : 36|1@0+ (1,0) [0|1] "" XXX + SG_ Left_Blinker : 37|1@0+ (1,0) [0|1] "" XXX + SG_ Right_Blinker : 38|1@0+ (1,0) [0|1] "" XXX -BO_ 1485 DCDC_03: 8 DCDC_800V_PAG - SG_ DCDC_03_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ DCDC_03_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ DC_Fehlerstatus : 16|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ DC_Peakstrom_verfuegbar : 19|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ DC_Abregelung_Temperatur : 20|1@1+ (1,0) [0|1] "" Gateway_PAG,Sub_Gateway,TME - SG_ DC_IstModus_02 : 21|3@1+ (1,0) [0|7] "" DCDC_HV_02,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway,TME - SG_ DC_HV_EKK_IstModus : 28|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway,TME - SG_ DC_Status_Spgfreiheit_HV : 46|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway - SG_ DC_IstSpannung_EKK_HV : 48|8@1+ (2,0) [0|508] "Unit_Volt" Gateway,Gateway_PAG,Sub_Gateway - SG_ DC_Temperatur : 56|8@1+ (1,-40) [-40|213] "Unit_DegreCelsi" Gateway,Gateway_PAG,Sub_Gateway,TME +BO_ 518 Parken_01: 24 XXX + SG_ CHK : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ AEB_Active : 16|1@0+ (1,0) [0|1] "" XXX -BO_ 1505 Klima_Sensor_02: 8 Gateway - SG_ BCM1_Aussen_Temp_ungef : 0|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" BMC_MLBevo,BMS_NV,FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME - SG_ BCM_Heizungsabsperrventil_Status : 8|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BCM_Heizungspumpe_Status : 10|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BCM_Kompressorkupplung_Status : 12|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BCM1_PTC_stufig_Status : 28|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ BCM1_FStatus_Aussentemp_ungef : 31|1@1+ (1,0) [0|1] "" TME - SG_ BCM1_Kompressorstrom_ist : 32|8@1+ (4,0) [0|1000] "Unit_MilliAmper" Vector__XXX - SG_ BCM1_OBD_FStatus_ATemp : 44|4@1+ (1,0) [0|15] "" BMC_MLBevo,Ladegeraet_Konzern,TME +BO_ 522 EML_06: 64 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX + SG_ Yaw_Rate : 200|16@1+ (0.007,-229.34) [0|255] "" XXX -BO_ 1513 Klima_Sensor_04: 8 Gateway - SG_ DS_Kaeltemittel_P : 8|11@1+ (0.0161,0) [0|32.9245] "Unit_Bar" TME - SG_ DS_Status : 19|2@1+ (1,0) [0|3] "" TME - SG_ ION_Status : 21|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ION_Status_LED : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ AAU_Geblaese : 24|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX - SG_ ION_Status_Taster : 31|1@1+ (1,0) [0|1] "" Vector__XXX +BO_ 564 MEB_Camera_02: 64 XXX + SG_ NEW_SIGNAL_1 : 12|6@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_2 : 18|6@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_3 : 24|6@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_4 : 30|6@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_7 : 178|13@1+ (1,0) [0|127] "" XXX + SG_ NEW_SIGNAL_6 : 192|12@1+ (1,0) [0|255] "" XXX + SG_ NEW_SIGNAL_8 : 286|9@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_5 : 295|9@1+ (1,0) [0|255] "" XXX -BO_ 1600 Motor_07: 8 Motor_Diesel_MQB - SG_ MO_QBit_Ansaugluft_Temp : 0|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_QBit_Oel_Temp : 1|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_QBit_Kuehlmittel_Temp : 2|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB - SG_ MO_Stellgliedtest_Soundaktuator : 3|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_HYB_Fehler_HV_Netz : 4|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_aktives_Getriebeheizen : 5|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Absperrventil_oeffnen : 6|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_Ansaugluft_Temp : 8|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB - SG_ MO_Oel_Temp : 16|8@1+ (1,-60) [-60|192] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Kuehlmittel_Temp : 24|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB - SG_ MO_Hoeheninfo : 32|8@1+ (0.00781,0) [0|1.98374] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Kennfeldk : 40|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Versionsinfo : 41|6@1+ (1,0) [0|63] "" Gateway_MQB - SG_ MO_Getriebe_kuehlen : 47|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Traegheit_02 : 48|5@1+ (0.01,0) [0|0.31] "Unit_KiloGramMeterSquar" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Heizungspumpenansteuerung : 53|4@1+ (10,0) [0|100] "Unit_PerCent" Gateway_MQB - SG_ MO_SpannungsAnf : 57|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Nachlaufzeit_Heizungspumpe : 58|6@1+ (15,0) [0|945] "Unit_Secon" Gateway_MQB +BO_ 588 MEB_Side_Assist_01: 16 XXX + SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX + SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Pre_Warn_Right : 27|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Warn_Left : 29|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Pre_Warn_Left : 30|1@0+ (1,0) [0|1] "" XXX + SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX + SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX + SG_ Lower_Speed_02 : 84|1@0+ (1,0) [0|1] "" XXX + SG_ Standstill : 86|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 98|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX -BO_ 167 Motor_11: 8 Motor_Diesel_MQB - SG_ Motor_11_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ Motor_11_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Soll_Roh : 12|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Ist_Summe : 22|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,SAK_MQB - SG_ MO_Mom_Traegheit_Summe : 32|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Soll_gefiltert : 42|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Schub : 52|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Status_Normalbetrieb_01 : 61|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_erste_Ungenauschwelle : 62|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_QBit_Motormomente : 63|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB +BO_ 589 MEB_Side_Assist_02: 64 XXX + SG_ Unknown_01 : 100|3@0+ (1,0) [0|7] "" XXX + SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX -BO_ 168 Motor_12: 8 Motor_Diesel_MQB - SG_ Motor_12_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB - SG_ Motor_12_BZ : 8|4@1+ (1,0) [0|15] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB - SG_ MO_Mom_neg_verfuegbar : 12|9@1+ (1,-509) [-509|0] "Unit_NewtoMeter" Gateway_MQB - SG_ MO_Mom_Begr_stat : 21|9@1+ (1,0) [0|509] "Unit_NewtoMeter" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Mom_Begr_dyn : 30|10@1+ (1,-509) [-509|509] "Unit_NewtoMeter" Gateway_MQB - SG_ MO_Momentenintegral_02 : 40|7@1+ (1,0) [0|100] "Unit_PerCent" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_QBit_Drehzahl_01 : 47|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB - SG_ MO_Drehzahl_01 : 48|16@1+ (0.25,0) [0|16383] "Unit_MinutInver" BMS_MQB,Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB +BO_ 591 MEB_Distance_01: 64 XXX + SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ Same_Lane_01_ObjectID : 16|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Left_Lane_01_ObjectID : 22|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Right_Lane_01_ObjectID : 28|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Same_Lane_02_ObjectID : 34|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Left_Lane_02_ObjectID : 40|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX + SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX + SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX + SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX + SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX + SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX + SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX + SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX + SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX + SG_ Unknown_07 : 277|6@1+ (1,0) [0|7] "" XXX + SG_ Unknown_08 : 284|6@1+ (1,0) [0|1] "" XXX -BO_ 958 Motor_14: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME - SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME - SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME - SG_ MO_Freig_Reku : 16|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Kl_75 : 18|1@1+ (1,0) [0|1] "" Sub_Gateway,TME - SG_ MO_Kl_50 : 19|1@1+ (1,0) [0|1] "" DCDC_IHEV,Ladegeraet_Konzern,Sub_Gateway - SG_ MO_Gangposition : 20|4@1+ (1,0) [0|15] "" AWC,Sub_Gateway,TME - SG_ MO_StartStopp_Fahrerwunsch : 24|2@1+ (1,0) [0|3] "" Sub_Gateway,TME - SG_ MO_HYB_Fahrbereitschaft : 26|1@1+ (1,0) [0|1] "" AWC,BMS_NV,Ladegeraet_Konzern,Sub_Gateway,TME - SG_ MO_Ext_E_Fahrt_aktiv : 27|1@1+ (1,0) [0|1] "" Sub_Gateway,TME - SG_ MO_Fahrer_bremst : 28|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_QBit_Fahrer_bremst : 29|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_BLS : 30|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Konsistenz_Bremsped : 31|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_KomFehler_ESP : 32|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Klima_Eingr : 33|2@1+ (1,0) [0|3] "" Sub_Gateway,TME - SG_ MO_Aussp_Anlass : 35|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Freig_Anlass : 36|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Kuppl_schalter : 37|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Interlock : 38|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Motor_laeuft : 39|1@1+ (1,0) [0|1] "" Sub_Gateway,TME - SG_ MO_Kickdown : 40|1@1+ (1,0) [0|1] "" Sub_Gateway,TME - SG_ MO_QBit_KL_75 : 41|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_EKlKomLeiRed : 42|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Handshake_STH : 44|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_BKV_Unterdruckwarnung : 45|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Freigabe_Segeln : 46|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_PTC_Status : 47|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ MO_QBit_Gangposition : 50|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Signalquelle_Gangposition : 51|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Remotestart_Betrieb : 52|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Remotestart_moeglich : 53|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_FMAus_aktiv : 55|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway - SG_ MO_FMAus_Startvariante : 56|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_BMS_NV_Anf_stuetzen : 58|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Zylinderabschaltung : 59|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_HYB_VM_aktiv : 61|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1,0) [0|3] "" AWC,Ladegeraet_Konzern,Sub_Gateway +BO_ 605 KLR_01: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KLR_Fehler : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KLR_ResponseError : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KLR_Lokalaktiv : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KLR_Fehler_Codierung : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KLR_Touchintensitaet_1 : 16|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchintensitaet_2 : 24|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchintensitaet_3 : 32|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX + SG_ KLR_Touchauswertung : 40|4@1+ (1,0) [0|15] "" ZR_High + +BO_ 619 TA_01: 8 XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Travel_Assist_Status : 13|3@1+ (1,0) [0|3] "" XXX + SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX + SG_ Travel_Assist_Available : 23|1@1+ (1,0) [0|1] "" XXX -BO_ 1631 Motor_16: 8 Gateway - SG_ TSK_Grundmasse : 0|8@1+ (32,0) [0|8128] "Unit_KiloGram" ZR_High - SG_ TSK_QBit_Steigung : 12|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ TSK_QBit_Fahrzeugmasse : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_SpannungsAnf_02 : 14|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_DPF_reg : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MO_Heizstrom_EKAT : 17|7@1+ (1,0) [0|126] "Unit_Amper" Vector__XXX - SG_ MO_Heizstrom_SCR : 24|6@1+ (1,0) [0|62] "Unit_Amper" Vector__XXX - SG_ MO_Anzeige_Kaltleuchte : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_P_Generator_ungefiltert_Anf : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ TSK_Getriebeinfo : 34|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Energieinhalt_BMS : 36|12@1+ (25,0) [0|102325] "Unit_WattHour" Vector__XXX - SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" OTA_FC,ZR_High - SG_ TSK_Steigung_02 : 56|8@1+ (0.8,-101.6) [-100.8|101.6] "Unit_PerCent" OTA_FC +BO_ 695 RCTA_01: 8 XXX + SG_ RCTA_01_CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ RCTA_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX -BO_ 1648 Motor_18: 8 Gateway - SG_ MO_max_Ladedruck : 0|6@1+ (0.1,0) [0|6.3] "Unit_Bar" Sub_Gateway - SG_ MO_ANC_Kennfeld_Anf : 6|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Bremslicht_Reku : 8|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_StartStopp_PopUp : 9|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO1_Sperr_Info_WFS : 11|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_EPCL : 13|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ MO_Zylabsch_Texte_02 : 16|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ MO_Fahrzeugtyp : 20|3@1+ (1,0) [0|7] "" BMS_NV,Sub_Gateway - SG_ MO_NMAX_Schaltanzeige : 23|9@1+ (25,0) [0|12775] "Unit_MinutInver" Sub_Gateway - SG_ MO_Abstellzeit : 32|8@1+ (8,0) [0|2024] "Unit_Minut" BMS_NV,Sub_Gateway,TME - SG_ MO_Abstellzeit_Status : 40|2@1+ (1,0) [0|3] "" BMS_NV,Sub_Gateway,TME - SG_ MO1_Freigabe_Verfallsinfo_WFS : 42|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_Hybrid_StartStopp_LED : 43|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Fehler_Zylabsch : 45|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Anzahl_Abgesch_Zyl : 47|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ MO_Zylabsch_Texte : 50|2@1+ (1,0) [0|3] "" Sub_Gateway - SG_ MO_Ethanol_BS_Texte : 52|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ MO_Drehzahl_Warnung : 55|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ MO_obere_Drehzahlgrenze : 56|8@1+ (50,0) [50|12750] "Unit_MinutInver" Sub_Gateway +BO_ 706 Motor_41: 8 Gateway + SG_ MO_Anzeige_StSt_Text : 12|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_Anzeige_StSt_Symbol : 16|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_ADR_Status : 19|2@1+ (1,0) [0|3] "" ZR_High + SG_ MO_AGA_Sound_Texte : 21|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_Anzeige_FMAus_Text : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Fehler_MSpG : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PEA_Texte : 25|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ TSK_Ueberstimmt_vMax_FahrerInfo : 28|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_Avus_Motorschutz : 30|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_Rekuperationsstufe : 32|3@1+ (1,0) [0|7] "" OTA_FC + SG_ TSK_Einheit_vMax_FahrerInfo : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ TSK_Status_vMax_FahrerInfo : 36|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_Red_Fahrleistung : 38|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_Anz_Kuehlerluefter : 47|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ MO_im_Leerlauf : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Enable_Oeldr_Motor : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_OelMessung_Dauer : 52|4@1+ (15,15) [15|225] "Unit_Secon" Vector__XXX + SG_ TSK_vMax_FahrerInfo : 56|8@1+ (1,15) [16|270] "" Vector__XXX -BO_ 967 Motor_26: 8 Gateway - SG_ MO_Kuehlerluefter_MUX M : 0|1@1+ (1,0) [0|1] "" TME - SG_ MO_Kuehlerluefter_1 m0 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME - SG_ MO_Kuehlerluefter_2 m1 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME - SG_ MO_EFLEX_Lampe : 8|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ MO_KJS_nicht_bereit : 10|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_ITM_Warnung_Pumpe : 11|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Anzeige_aktiv : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oelmin_Warn : 13|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Sensorfehler : 14|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Schieflage : 15|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oelstand : 16|4@1+ (12.5,0) [0|100] "Unit_PerCent" Vector__XXX - SG_ MO_Zustand_HWP : 20|2@1+ (1,0) [0|3] "" TME - SG_ OLEV_Systemstoerung : 22|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Oelwarnung_max : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oelsystem_aktiv : 24|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_nicht_betriebswarm : 25|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Ueberfuell_Warn : 26|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_laufender_Motor : 27|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_E_Warnungen : 28|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MO_Text_Motorstart : 32|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MO_E_Texte : 36|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ WIV_Oeldyn_avl : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Text_Partikelfil_Reg : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ OLEV_Oelstand_nicht_vorhanden : 42|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oelmenge : 43|5@1+ (125,0) [0|3875] "Unit_MilliLiter" Vector__XXX - SG_ MO_Systemlampe : 48|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_OBD2_Lampe : 49|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Heissleuchte : 50|1@1+ (1,0) [0|1] "" TME - SG_ MO_Partikel_Lampe : 51|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_RedFahrleistung_Lampe : 52|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oelstand_nicht_vorhanden : 53|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_nachfuellanzeige_ein : 54|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Ueberfuell_deaktiv : 55|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Unterfuell_Warn : 56|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Tankdeckel_Lampe : 57|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Text_Tankdeckelwarn : 58|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_Vorglueh_Lampe : 59|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MO_E_Mode : 61|3@1+ (1,0) [0|7] "" Vector__XXX +BO_ 768 MEB_ACC_01: 48 XXX + SG_ ACC_Tempolimit : 64|5@1+ (1,0) [0|31] "" OTA_FC + SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ Unknown_02 : 73|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX + SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX + SG_ ACC_Display_Prio : 96|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ACC_rel_Objekt_Zusatzanz : 98|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ACC_Gesetzte_Zeitluecke : 101|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ ACC_Optischer_Fahrerhinweis : 104|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Warnhinweis : 105|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_EGO_Fahrzeug : 106|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ ACC_Relevantes_Objekt_02 : 109|2@1+ (1,0) [0|3] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ACC_Wunschgeschw_erreicht : 112|1@1+ (1,0) [0|1] "" OTA_FC + SG_ ACC_Anzeige_Zeitluecke : 113|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ACC_Texte_Primaeranz_02 : 114|6@1+ (1,0) [0|63] "" Vector__XXX + SG_ ACC_Texte_Zusatzanz_02 : 120|6@1+ (1,0) [0|63] "" Vector__XXX + SG_ STA_Primaeranz : 126|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ SET_ME_0X3FF : 140|10@1+ (1,0) [0|15] "" XXX + SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX + SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX + SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX + SG_ Zeitluecke_Farbe : 189|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX + SG_ ACC_Akustischer_Fahrerhinweis : 211|2@1+ (1,0) [0|1] "" XXX + SG_ Unknown_08 : 224|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_01 : 225|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX + SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX + SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX + SG_ Unknown_09 : 262|1@0+ (1,0) [0|3] "" XXX + SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX + SG_ Street_Color : 267|1@0+ (1,0) [0|1] "" XXX + SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX + SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX + SG_ SET_ME_0X6A : 273|8@1+ (1,0) [0|7] "" XXX + SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX + SG_ Lead_Distance : 290|10@1+ (0.2,0) [0|7] "Unit_Meter" XXX + SG_ ACC_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX + SG_ Zeitluecke_1 : 334|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_2 : 344|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_3 : 354|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_4 : 364|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX + SG_ Zeitluecke_5 : 374|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX + +BO_ 771 HCA_03: 24 XXX + SG_ Standby : 13|1@1+ (1,0) [0|1] "" XXX + SG_ Request : 14|1@1+ (1,0) [0|1] "" XXX + SG_ Unknown_02 : 15|1@1+ (1,0) [0|1] "" XXX + SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX + SG_ Power_Boost : 23|1@1+ (1,0) [0|1] "" XXX + SG_ Curvature : 24|15@1+ (6.7e-06,0) [0|0.219] "Unit_rad/m" XXX + SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX + SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX + SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX + SG_ Active : 66|1@1+ (1,0) [0|1] "" XXX + +BO_ 795 ESP_24: 8 Gateway + SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ABS_Lampe : 13|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ BK_Lampe_02 : 14|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ TC_Lampe : 16|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_m_Raddrehz : 17|15@1+ (0.002,0) [0|65.278] "Unit_Hertz" Sub_Gateway + SG_ ESP_Textanzeigen_03 : 32|5@1+ (1,0) [0|31] "" Sub_Gateway + SG_ ESP_Meldungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ ESP_Wegimp_VA : 40|11@1+ (1,0) [0|2047] "" Sub_Gateway + SG_ ESP_Fehlerstatus_Wegimp : 51|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_Wegimp_Ueberlauf : 52|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_QBit_Wegimp_VA : 53|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_HDC_Geschw_Farbe : 54|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_Off_Lampe : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ ESP_HDC_Regelgeschw : 56|7@1+ (0.32,0) [0.32|39.68] "Unit_KiloMeterPerHour" Sub_Gateway + SG_ ESP_BKV_Warnung : 63|1@1+ (1,0) [0|1] "" Sub_Gateway + +BO_ 817 MFL_01: 8 Gateway + SG_ MFL_Zaehler : 0|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Toggle : 4|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MFL_Lokalaktiv : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MFL_M_Taste : 6|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Paddle_Verbau : 7|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Tastencode_1 : 8|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MFL_Tastencode_2 : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MFL_Eventcode_1 : 24|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Eventcode_2 : 28|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Marke : 32|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Variante : 36|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MFL_Dummy_0_Signal_1 : 40|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ MFL_Tip_Down : 48|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Tip_Up : 49|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_SatModul_links_Err : 50|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_SatModul_rechts_Err : 51|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Dummy_0_Signal_2 : 52|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MFL_Dummy_0_Signal_3 : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MFL_LR_HZG_Status : 54|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_LR_HZG_Err : 55|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Signalhorn : 56|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ MFL_Signalhorn_Err : 57|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Tip_links_Err : 58|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Tip_rechts_Err : 59|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Taste_links_Err : 60|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Taste_rechts_Err : 61|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_ECU_Err : 62|1@1+ (1,0) [0|1] "" ZR_High + SG_ MFL_Response_Err : 63|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 850 Parken_SM_03: 8 Gateway + SG_ Parken_SM_03_MUX M : 0|3@1+ (1,0) [0|7] "" DDA + SG_ Parken_SM_03_Traj_Trans_ID_00 m0 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P1_Pos_X m0 : 7|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P1_Pos_Y m0 : 20|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P1_Tangent m0 : 33|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P2_Pos_X m0 : 43|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_SM_03_Traj_Trans_ID_01 m1 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P2_Pos_Y m1 : 7|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P2_Tangent m1 : 20|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P3_Pos_X m1 : 30|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P3_Pos_Y m1 : 43|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_SM_03_Traj_Trans_ID_02 m2 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P3_Tangent m2 : 7|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P4_Pos_X m2 : 17|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P4_Pos_Y m2 : 30|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P4_Tangent m2 : 43|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_SM_03_Traj_Trans_ID_03 m3 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P5_Pos_X m3 : 7|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P5_Pos_Y m3 : 20|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P5_Tangent m3 : 33|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P6_Pos_X m3 : 43|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_SM_03_Traj_Trans_ID_04 m4 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P6_Pos_Y m4 : 7|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P6_Tangent m4 : 20|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P7_Pos_X m4 : 30|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P7_Pos_Y m4 : 43|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_SM_03_Traj_Trans_ID_05 m5 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P7_Tangent m5 : 7|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_Traj_P8_Pos_X m5 : 17|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P8_Pos_Y m5 : 30|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P8_Tangent m5 : 43|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + SG_ Parken_SM_03_Traj_Trans_ID_06 m6 : 3|4@1+ (1,0) [0|15] "" DDA + SG_ Parken_Traj_P9_Pos_X m6 : 7|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P9_Pos_Y m6 : 20|13@1+ (0.5,-2047.5) [-2047.5|2048] "Unit_Centimeter" DDA + SG_ Parken_Traj_P9_Tangent m6 : 33|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" DDA + +BO_ 869 NVEM_05: 8 Gateway + SG_ NVEM_05_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ NVEM_05_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ NVEM_Pilot_Info : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ NVEM_P_Generator_Status : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BEM_P_Generator : 16|8@1+ (50,0) [0|12700] "Unit_Watt" Vector__XXX + SG_ BEM_n_LLA : 24|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_Anf_KL : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BEM_StartStopp_Info : 30|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_DFM : 32|5@1+ (3.225,0.025) [0.025|100] "" Vector__XXX + SG_ BEM_Batt_Ab : 38|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_IHEV + SG_ BEM_Hybrid_Info : 44|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ NVEM_Red_KL : 46|2@1+ (1,0) [0|3] "" TME + SG_ NVEM_Freilauf_Info : 48|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BEM_HYB_DC_uSollLV : 50|6@1+ (0.1,10.6) [10.6|16] "Unit_Volt" DCDC_800V_PAG,DCDC_HV,LE_MLBevo + SG_ BEM_HYB_DC_uMinLV : 56|8@1+ (0.1,0) [0|25.3] "Unit_Volt" Vector__XXX + +BO_ 870 Blinkmodi_02: 8 Gateway + SG_ BM_ZV_auf : 12|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_ZV_zu : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_DWA_ein : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_DWA_Alarm : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Crash : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Panik : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Not_Bremsung : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_GDO : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BM_Warnblinken : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Taxi_Notalarm : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Telematik : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_links : 23|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_rechts : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ Blinken_li_Fzg_Takt : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ Blinken_re_Fzg_Takt : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ Blinken_li_Kombi_Takt : 27|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ Blinken_re_Kombi_Takt : 28|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BM_NBA_n_codiert_n_aktiv : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BM_NBA_Status : 30|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BM_WBT_Beleuchtung : 32|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_HD_Oeffnung_angelernt : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BM_Autobahn : 34|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ BM_Rollenmodus_Blinken : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BM_Recas : 36|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Wischblinken : 37|1@1+ (1,0) [0|1] "" ZR_High + SG_ BM_Telematik_Abbruchgrund : 38|6@1+ (1,0) [0|63] "" Vector__XXX + SG_ BM_PiloPa : 44|1@1+ (1,0) [0|1] "" ZR_High + SG_ DWA_Alarmquelle : 59|5@1+ (1,0) [0|31] "" ZR_High + +BO_ 888 GNSS_04: 8 Gateway + SG_ GNSS_Nachrichtenpaket_ID4 : 0|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Ortung_Zeit_in_GPSWoche : 2|30@1+ (1,0) [0|604800001] "Unit_MilliSecon" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Ortung_Hoehe : 32|12@1+ (2,-500) [-500|7686] "Unit_Meter" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 891 GNSS_05: 8 Gateway + SG_ GNSS_UTC_Zeit : 0|32@1+ (1,0) [1|4294967295] "Unit_Secon" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Empfaenger_Status : 32|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_GPS_in_Nutzung : 33|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_GLONASS_in_Nutzung : 34|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Empfangbare_Satelliten : 35|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Sichtbare_Satelliten : 40|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Genutzte_Satelliten : 45|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GNSS_Nachrichtenpaket_ID5 : 50|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 896 APS_Master: 8 XXX + SG_ Active : 54|1@0+ (1,0) [0|1] "" XXX + SG_ Distance : 55|9@1+ (1,0) [0|255] "" XXX BO_ 916 WBA_03: 8 Gateway - SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway - SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_Fahrstufe_02 : 12|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_ZielFahrstufe : 16|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_GE_Warnung_02 : 20|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_eing_Gang_02 : 24|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_GE_Texte : 28|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ WBA_Segeln_aktiv : 31|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ WBA_Schaltschema : 32|5@1+ (1,0) [0|31] "" Sub_Gateway - SG_ WBA_GE_Zusatzwarnungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ GE_Sollgang : 40|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ GE_Tipschaltempf_verfuegbar : 44|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ WBA_GE_Texte_02 : 45|3@1+ (1,0) [0|7] "" Sub_Gateway - SG_ WBA_GE_Texte_03 : 48|4@1+ (1,0) [0|15] "" Sub_Gateway - SG_ WBA_Blinken : 54|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Wiederstart_Anz_Std : 55|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_01 : 56|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_02 : 57|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_03 : 58|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_04 : 59|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_05 : 60|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_06 : 61|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_07 : 62|1@1+ (1,0) [0|1] "" Sub_Gateway - SG_ GE_Stoppverbot_Anz_Std : 63|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ WBA_03_CRC : 0|8@1+ (1,0) [0|255] "" Sub_Gateway + SG_ WBA_03_BZ : 8|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_Fahrstufe_02 : 12|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_ZielFahrstufe : 16|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_GE_Warnung_02 : 20|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_eing_Gang_02 : 24|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_GE_Texte : 28|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ WBA_Segeln_aktiv : 31|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ WBA_Schaltschema : 32|5@1+ (1,0) [0|31] "" Sub_Gateway + SG_ WBA_GE_Zusatzwarnungen : 37|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ GE_Sollgang : 40|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ GE_Tipschaltempf_verfuegbar : 44|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ WBA_GE_Texte_02 : 45|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ WBA_GE_Texte_03 : 48|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ WBA_Blinken : 54|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Wiederstart_Anz_Std : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_01 : 56|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_02 : 57|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_03 : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_04 : 59|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_05 : 60|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_06 : 61|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_07 : 62|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ GE_Stoppverbot_Anz_Std : 63|1@1+ (1,0) [0|1] "" Sub_Gateway -BO_ 1283 HVK_01: 8 Gateway - SG_ HVK_01_CRC : 0|8@1+ (1,0) [0|255] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME - SG_ HVK_01_BZ : 8|4@1+ (1,0) [0|15] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME - SG_ HVK_Istmodus_Anf : 12|1@1+ (1,0) [0|1] "" BMC_MLBevo,DCDC_HV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo - SG_ HVK_TN1_Sollmodus : 13|2@1+ (1,0) [0|3] "" DCDC_HV_02,FCU_MLBevo_FCEV - SG_ HVK_MO_EmSollzustand : 16|8@1+ (1,0) [0|255] "" FCU_MLBevo_FCEV - SG_ HVK_BMS_Sollmodus : 24|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV - SG_ HVK_DCDC_Sollmodus : 27|3@1+ (1,0) [0|7] "" DCDC_800V_PAG,DCDC_HV,FCU_MLBevo_FCEV,LE_MLBevo - SG_ HVK_EKK_Sollmodus : 30|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME - SG_ HVK_HVPTC_Sollmodus : 33|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME - SG_ HVK_HVLM_Sollmodus : 36|3@1+ (1,0) [0|7] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern - SG_ HVK_HV_Netz_Warnungen : 39|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV - SG_ HV_Bordnetz_aktiv : 41|1@1+ (1,0) [0|1] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo - SG_ HV_Bordnetz_Fehler : 42|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME - SG_ HVK_Gesamtst_Spgfreiheit : 43|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV - SG_ HVK_AktiveEntladung_Anf : 45|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,LE1,LE2,LE_MLBevo - SG_ HVK_Iso_Messung_Start : 50|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV - SG_ HVK_DCDC_EKK_Sollmodus : 62|2@1+ (1,0) [0|3] "" DCDC_800V_PAG,FCU_MLBevo_FCEV +BO_ 919 LDW_02: 8 XXX + SG_ LDW_Gong : 12|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_SW_Warnung_links : 14|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_SW_Warnung_rechts : 15|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Texte : 16|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Seite_DLCTLC : 20|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Lernmodus : 21|3@1+ (1,0) [0|7] "" XXX + SG_ LDW_Anlaufsp_VLR : 24|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Vib_Amp_VLR : 28|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Anlaufzeit_VLR : 32|4@1+ (1,0) [0|15] "" XXX + SG_ LDW_Lernmodus_rechts : 36|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_Lernmodus_links : 38|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_DLC : 40|8@1+ (0.01,-1.25) [-1.25|1.25] "Unit_Meter" XXX + SG_ LDW_TLC : 48|5@1+ (0.1,0) [0|3] "Unit_Secon" XXX + SG_ LDW_Warnung_links : 56|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Warnung_rechts : 57|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Codierinfo_fuer_VLR : 58|2@1+ (1,0) [0|3] "" XXX + SG_ LDW_Frontscheibenheizung_aktiv : 60|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Status_LED_gelb : 61|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX + SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX BO_ 949 Klima_11: 8 Gateway - SG_ KL_Drehz_Anh : 0|1@1+ (1,0) [0|1] "" TME - SG_ KL_Vorwarn_Komp_ein : 1|1@1+ (1,0) [0|1] "" TME - SG_ KL_AC_Schalter : 2|1@1+ (1,0) [0|1] "" TME - SG_ KL_Komp_Moment_alt : 3|1@1+ (1,0) [0|1] "" TME + SG_ KL_Drehz_Anh : 0|1@1+ (1,0) [0|1] "" TME + SG_ KL_Vorwarn_Komp_ein : 1|1@1+ (1,0) [0|1] "" TME + SG_ KL_AC_Schalter : 2|1@1+ (1,0) [0|1] "" TME + SG_ KL_Komp_Moment_alt : 3|1@1+ (1,0) [0|1] "" TME SG_ KL_Vorwarn_Zuheizer_ein : 6|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Zustand : 7|1@1+ (1,0) [0|1] "" TME + SG_ KL_Zustand : 7|1@1+ (1,0) [0|1] "" TME SG_ KL_Kompressorkupplung_linear : 8|8@1+ (20,0) [0|4000] "Unit_MilliAmper" Vector__XXX - SG_ KL_Charisma_FahrPr : 16|4@1+ (1,0) [0|15] "" TME - SG_ KL_Charisma_Status : 20|2@1+ (1,0) [0|3] "" TME + SG_ KL_Charisma_FahrPr : 16|4@1+ (1,0) [0|15] "" TME + SG_ KL_Charisma_Status : 20|2@1+ (1,0) [0|3] "" TME SG_ KL_nachtr_Stopp_Anf : 22|1@1+ (1,0) [0|1] "" Vector__XXX SG_ KL_T_Charge : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Last_Kompr : 24|8@1+ (0.25,0) [0|63.5] "Unit_NewtoMeter" TME + SG_ KL_Last_Kompr : 24|8@1+ (0.25,0) [0|63.5] "Unit_NewtoMeter" TME SG_ KL_Spannungs_Anf : 32|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_Thermomanagement : 34|2@1+ (1,0) [0|3] "" TME - SG_ KL_StartStopp_Info : 36|2@1+ (1,0) [0|3] "" TME + SG_ KL_Thermomanagement : 34|2@1+ (1,0) [0|3] "" TME + SG_ KL_StartStopp_Info : 36|2@1+ (1,0) [0|3] "" TME SG_ KL_Freilauf_Info : 38|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_Anf_KL : 40|8@1+ (0.4,0) [0|101.6] "Unit_PerCent" TME - SG_ KL_el_Zuheizer_Stufe : 48|3@1+ (1,0) [0|7] "" TME + SG_ KL_Anf_KL : 40|8@1+ (0.4,0) [0|101.6] "Unit_PerCent" TME + SG_ KL_el_Zuheizer_Stufe : 48|3@1+ (1,0) [0|7] "" TME SG_ KL_Ausstattung_Klima : 51|3@1+ (1,0) [0|7] "" Vector__XXX SG_ KL_Variante_Standheizung : 54|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 1640 Klima_12: 8 Gateway - SG_ KL_LRH_Taster : 0|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_LRH_Stufe : 1|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ HSH_Taster : 3|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ FSH_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Zuheizer_Freigabe : 6|1@1+ (1,0) [0|1] "" TME - SG_ KL_Beschlagsgefahr : 7|1@1+ (1,0) [0|1] "" TME - SG_ KL_SIH_Soll_li : 8|3@1+ (1,0) [0|7] "" TME - SG_ KL_SIH_Soll_re : 11|3@1+ (1,0) [0|7] "" TME - SG_ KRH_Soll_li : 14|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_SIL_Soll_li : 16|3@1+ (1,0) [0|7] "" TME - SG_ KL_SIL_Soll_re : 19|3@1+ (1,0) [0|7] "" TME - SG_ KRH_Soll_re : 22|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KL_Geblspng_Soll : 24|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX - SG_ KL_Geblspng_Fond_Soll : 32|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX - SG_ KL_I_Geblaese : 40|8@1+ (0.25,0) [0|63.5] "Unit_Amper" Vector__XXX - SG_ KL_Kompressorstrom_soll : 48|10@1+ (1,0) [0|1021] "" TME - SG_ KL_Umluftklappe_Status : 58|4@1+ (1,0) [0|15] "" TME - SG_ KL_PTC_Verbauinfo : 62|2@1+ (1,0) [0|3] "" Vector__XXX - -BO_ 1520 Dimmung_01: 8 Gateway_MQB - SG_ DI_KL_58xd : 0|8@1+ (1,0) [0|253] "" Airbag_MQB - SG_ DI_KL_58xs : 8|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX - SG_ DI_Display_Nachtdesign : 15|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ DI_KL_58xt : 16|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX - SG_ DI_Fotosensor : 24|16@1+ (1,0) [0|65535] "" Vector__XXX - -BO_ 870 Blinkmodi_02: 8 Gateway - SG_ BM_ZV_auf : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_ZV_zu : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_DWA_ein : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_DWA_Alarm : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Crash : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Panik : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Not_Bremsung : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_GDO : 19|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BM_Warnblinken : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Taxi_Notalarm : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Telematik : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_links : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_rechts : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ Blinken_li_Fzg_Takt : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ Blinken_re_Fzg_Takt : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ Blinken_li_Kombi_Takt : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ Blinken_re_Kombi_Takt : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ BM_NBA_n_codiert_n_aktiv : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BM_NBA_Status : 30|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ BM_WBT_Beleuchtung : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_HD_Oeffnung_angelernt : 33|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BM_Autobahn : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ BM_Rollenmodus_Blinken : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BM_Recas : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Wischblinken : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BM_Telematik_Abbruchgrund : 38|6@1+ (1.0,0.0) [0.0|63] "" Vector__XXX - SG_ BM_PiloPa : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ DWA_Alarmquelle : 59|5@1+ (1.0,0.0) [0.0|31] "" ZR_High - -BO_ 987 Gateway_72: 8 Gateway_MQB - SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB - SG_ SMLS_01_alt : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB - SG_ ZV_02_alt : 2|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ Wischer_01_alt : 3|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ Anhaenger_01_alt : 4|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ Klima_Sensor_02_alt : 5|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ VSG_01_alt : 6|1@1+ (1,0) [0|1] "" Airbag_MQB - SG_ Klima_01_alt : 7|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ WFS_01_alt : 8|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ Licht_Anf_01_alt : 9|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZV_HFS_offen : 20|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZV_HBFS_offen : 21|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ VS_VD_offen_ver : 22|1@1+ (1,0) [0|1] "" Airbag_MQB - SG_ VS_VD_zu_ver : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZV_BT_offen : 24|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BCM1_Rueckfahrlicht_Schalter : 25|1@1+ (1,0) [0|1] "" Airbag_MQB - SG_ ZV_FT_offen : 26|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ Wischer_vorne_aktiv : 27|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ AAG_Anhaenger_erkannt : 28|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ BCM1_MH_Schalter : 29|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZV_HD_offen : 30|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ Waschen_vorne_aktiv : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KL_Thermomanagement : 32|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ WFS_Schluessel_Fahrberecht : 34|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ BCM1_RFahrlicht_Fzg_Anf : 38|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BCM1_RFahrlicht_Ahg_Anf : 39|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BH_Fernlicht : 49|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ BH_Blinker_li : 50|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB - SG_ BH_Blinker_re : 51|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB - SG_ BCM1_OBD_FStatus_ATemp : 52|4@1+ (1,0) [0|15] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ BCM1_Aussen_Temp_ungef : 56|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - -BO_ 299 GRA_ACC_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ GRA_Hauptschalter : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Abbrechen : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Typ_Hauptschalter : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Limiter : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Tip_Setzen : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Tip_Hoch : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Tip_Runter : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Tip_Wiederaufnahme : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Verstellung_Zeitluecke : 20|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ GRA_Codierung : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ GRA_Fehler : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_LIM_Taste_verfuegbar : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_Tip_Stufe_2 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ GRA_ButtonTypeInfo : 27|3@1+ (1.0,0.0) [0.0|7] "" ZR_High - SG_ GRA_TravelAssist : 30|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ GRA_reserveByte4 : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ GRA_reserveByte5 : 32|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ GRA_reserveByte6 : 40|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ GRA_reserveByte7 : 48|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ GRA_reserveByte8 : 56|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - -BO_ 134 LWI_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ LWI_Sensorstatus : 12|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_QBit_Sub_Daten : 13|1@1+ (1,0) [0|1] "" ZR_High - SG_ LWI_MFL_Abschaltung : 14|1@1+ (1,0) [0|1] "" ZR_High - SG_ LWI_QBit_Lenkradwinkel : 15|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_Lenkradwinkel : 16|13@1+ (0.0843,0) [0|800] "Unit_DegreOfArc" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_VZ_Lenkradwinkel : 29|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ LWI_VZ_Lenkradw_Geschw : 30|1@1+ (1,0) [0|1] "" ZR_High - SG_ LWI_Lenkradw_Geschw : 31|9@1+ (5,0) [0|2500] "Unit_DegreOfArcPerSecon" OTA_FC,ZR_High - SG_ LWI_Sub_Daten : 40|16@1+ (1,0) [0|65535] "" Vector__XXX - -BO_ 420 EA_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ EA_Parken_beibehalten_HMS : 12|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ EA_Warnruckprofil : 28|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ EA_eCall_Anf : 31|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ EA_Funktionsstatus : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ EA_Gurtstraffer_Anf : 44|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ EA_Anforderung_HMS : 48|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ EA_Sollbeschleunigung : 53|11@1+ (0.005,-7.22) [-7.220|3.005] "Unit_MeterPerSeconSquar" Vector__XXX - -BO_ 496 EA_02: 8 Gateway - SG_ EA_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ EA_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ EA_Texte : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ ACF_Lampe_Hands_Off : 16|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ EA_Infotainment_Anf : 22|2@1+ (1.0,0.0) [0.0|3] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ EA_Tueren_Anf : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ EA_Innenraumlicht_Anf : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ zFAS_Warnblinken : 26|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ STP_Primaeranz : 28|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ EA_Bremslichtblinken : 31|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ EA_Blinken : 32|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - -BO_ 695 RCTA_01: 8 XXX - SG_ RCTA_01_BZ : 8|4@1+ (1,0) [0|15] "" XXX - SG_ RCTA_01_CRC : 0|8@1+ (1,0) [0|255] "" XXX - -BO_ 173 Getriebe_11: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ GE_MMom_Soll_02 : 12|10@1+ (1,-509) [-509|509] "" Vector__XXX - SG_ GE_MMom_Vorhalt_02 : 22|10@1+ (1,-509) [-509|509] "" Vector__XXX - SG_ GE_Uefkt : 32|10@1+ (0.1,0) [0.0|102.2] "" Vector__XXX - SG_ GE_Fahrstufe : 42|4@1+ (1.0,0.0) [0.0|15] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ GE_reserv_Fahrstufe : 46|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ GE_Schaltablauf : 47|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ GE_Uefkt_unplausibel : 49|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ GE_MMom_Status_02 : 50|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ GE_Status_Kraftschluss : 53|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ GE_MMom_Status : 56|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ GE_Freig_MMom_Vorhalt : 58|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ GE_Verbot_Ausblendung : 59|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ GE_Zielgang : 60|4@1+ (1.0,0.0) [0.0|15] "" OTA_FC,ZR_High - -BO_ 1411 ZV_02: 8 Gateway - SG_ BCM_FH_Freigabe : 12|1@1+ (1.0,0.0) [0.0|1] "" BedienDisp_vo - SG_ BCM_Komfortfkt_Freigabe : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_HSK_Freigabe : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM_Verdeck_Freigabe : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_verriegelt_intern_ist : 16|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High - SG_ ZV_verriegelt_extern_ist : 17|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High - SG_ ZV_verriegelt_intern_soll : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_verriegelt_extern_soll : 19|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_gesafet_extern_ist : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_gesafet_extern_soll : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ZV_Einzeltuerentriegelung : 22|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ZV_Heckeinzelentriegelung : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ZV_FT_offen : 24|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_BT_offen : 25|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_HFS_offen : 26|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_HBFS_offen : 27|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_HD_offen : 28|1@1+ (1.0,0.0) [0.0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ ZV_HS_offen : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ IRUE_aktiv : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ DWA_aktiv : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ HD_Hauptraste : 32|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ HD_Vorraste : 33|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ FFB_CarFinder : 38|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FFB_Komfortoeffnen : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FFB_Komfortschliessen : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ZV_Schluessel_Zugang : 42|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ ZV_SafeFunktion_aktiv : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FBS_Warn_Schluessel_Batt : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_Oeffnungsmodus : 48|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ HFS_verriegelt : 50|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ HFS_gesafet : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ HBFS_verriegelt : 52|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC - SG_ HBFS_gesafet : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ ZV_ist_Zustand_verfuegbar : 54|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ IRUE_Taster_Fkts_LED : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_Tankklappe_offen : 56|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_Rollo_auf : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_Rollo_zu : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_SAD_auf : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_SAD_zu : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM_Tankklappensteller_Fehler : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ ZV_verriegelt_soll : 62|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - -BO_ 1714 Diagnose_01: 8 Gateway_MQB - SG_ DGN_Verlernzaehler : 0|8@1+ (1,0) [0|254] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB - SG_ KBI_Kilometerstand : 8|20@1+ (1,0) [0|1048573] "Unit_KiloMeter" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Jahr : 28|7@1+ (1,2000) [2000|2127] "Unit_Year" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Monat : 35|4@1+ (1,0) [1|12] "Unit_Month" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Tag : 39|5@1+ (1,0) [1|31] "Unit_Day" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Stunde : 44|5@1+ (1,0) [0|23] "Unit_Hours" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Minute : 49|6@1+ (1,0) [0|59] "Unit_Minut" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ UH_Sekunde : 55|6@1+ (1,0) [0|59] "Unit_Secon" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB - SG_ Kombi_02_alt : 62|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB - SG_ Uhrzeit_01_alt : 63|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB +BO_ 958 Motor_14: 8 Gateway + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ MO_StartStopp_Status : 12|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_StartStopp_Wiederstart : 14|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME + SG_ MO_StartStopp_Motorstopp : 15|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway,TME + SG_ MO_Freig_Reku : 16|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Kl_75 : 18|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Kl_50 : 19|1@1+ (1,0) [0|1] "" DCDC_IHEV,Ladegeraet_Konzern,Sub_Gateway + SG_ MO_Gangposition : 20|4@1+ (1,0) [0|15] "" AWC,Sub_Gateway,TME + SG_ MO_StartStopp_Fahrerwunsch : 24|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_HYB_Fahrbereitschaft : 26|1@1+ (1,0) [0|1] "" AWC,BMS_NV,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ MO_Ext_E_Fahrt_aktiv : 27|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Fahrer_bremst : 28|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_QBit_Fahrer_bremst : 29|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_BLS : 30|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Konsistenz_Bremsped : 31|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_KomFehler_ESP : 32|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Klima_Eingr : 33|2@1+ (1,0) [0|3] "" Sub_Gateway,TME + SG_ MO_Aussp_Anlass : 35|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Freig_Anlass : 36|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Kuppl_schalter : 37|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Interlock : 38|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Motor_laeuft : 39|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_Kickdown : 40|1@1+ (1,0) [0|1] "" Sub_Gateway,TME + SG_ MO_QBit_KL_75 : 41|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_EKlKomLeiRed : 42|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Handshake_STH : 44|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_BKV_Unterdruckwarnung : 45|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Freigabe_Segeln : 46|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_PTC_Status : 47|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_QBit_Gangposition : 50|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Signalquelle_Gangposition : 51|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Remotestart_Betrieb : 52|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Remotestart_moeglich : 53|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_FMAus_aktiv : 55|1@1+ (1,0) [0|1] "" BMS_NV,Sub_Gateway + SG_ MO_FMAus_Startvariante : 56|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_BMS_NV_Anf_stuetzen : 58|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Zylinderabschaltung : 59|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_HYB_VM_aktiv : 61|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_StartVorauss_erfuellt : 62|2@1+ (1,0) [0|3] "" AWC,Ladegeraet_Konzern,Sub_Gateway + +BO_ 960 Klemmen_Status_01: 4 Gateway + SG_ Klemmen_Status_01_CRC : 0|8@1+ (1,0) [0|255] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ Klemmen_Status_01_BZ : 8|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ RSt_Fahrerhinweise : 12|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_S : 16|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_15 : 17|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,DDA,GurtMikrofon,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_50_Startanforderung : 19|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_Betrieb : 20|1@1+ (1,0) [0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZAS_Kl_Infotainment : 21|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_KL15_Anf : 22|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Remotestart_MO_Start : 23|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Warn_P1_ZST_def : 24|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Warn_P2_ZST_def : 25|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_1 : 26|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_2 : 27|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM_Ausparken_Betrieb : 28|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_4 : 29|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_5 : 30|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ KST_Fahrerhinweis_6 : 31|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard -BO_ 1716 VIN_01: 8 Gateway_MQB - SG_ VIN_01_MUX M : 0|2@1+ (1,0) [0|3] "" Airbag_MQB - SG_ KS_Geheimnis_1 m0 : 8|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ VIN_4 m1 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_11 m2 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ KS_Geheimnis_2 m0 : 16|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ VIN_5 m1 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_12 m2 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ KS_Geheimnis_3 m0 : 24|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ VIN_6 m1 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_13 m2 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ KS_Geheimnis_4 m0 : 32|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ VIN_7 m1 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_14 m2 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_1 m0 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_8 m1 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_15 m2 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_2 m0 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_9 m1 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_16 m2 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_3 m0 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_10 m1 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB - SG_ VIN_17 m2 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB +BO_ 967 Motor_26: 8 Gateway + SG_ MO_Kuehlerluefter_MUX M : 0|1@1+ (1,0) [0|1] "" TME + SG_ MO_Kuehlerluefter_1 m0 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME + SG_ MO_Kuehlerluefter_2 m1 : 1|7@1+ (1,0) [0|100] "Unit_PerCent" TME + SG_ MO_EFLEX_Lampe : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_KJS_nicht_bereit : 10|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_ITM_Warnung_Pumpe : 11|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Anzeige_aktiv : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelmin_Warn : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Sensorfehler : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Schieflage : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelstand : 16|4@1+ (12.5,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ MO_Zustand_HWP : 20|2@1+ (1,0) [0|3] "" TME + SG_ OLEV_Systemstoerung : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Oelwarnung_max : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelsystem_aktiv : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_nicht_betriebswarm : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Ueberfuell_Warn : 26|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_laufender_Motor : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_E_Warnungen : 28|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_Text_Motorstart : 32|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_E_Texte : 36|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ WIV_Oeldyn_avl : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Text_Partikelfil_Reg : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ OLEV_Oelstand_nicht_vorhanden : 42|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelmenge : 43|5@1+ (125,0) [0|3875] "Unit_MilliLiter" Vector__XXX + SG_ MO_Systemlampe : 48|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_OBD2_Lampe : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Heissleuchte : 50|1@1+ (1,0) [0|1] "" TME + SG_ MO_Partikel_Lampe : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_RedFahrleistung_Lampe : 52|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oelstand_nicht_vorhanden : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_nachfuellanzeige_ein : 54|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Ueberfuell_deaktiv : 55|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Unterfuell_Warn : 56|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Tankdeckel_Lampe : 57|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Text_Tankdeckelwarn : 58|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Vorglueh_Lampe : 59|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WIV_Oeldr_Warn_Motor : 60|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_E_Mode : 61|3@1+ (1,0) [0|7] "" Vector__XXX BO_ 974 TSG_HFS_01: 8 Gateway SG_ HFS_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Vector__XXX @@ -704,8 +1006,8 @@ BO_ 974 TSG_HFS_01: 8 Gateway SG_ HFS_FH_normiert : 39|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ASW_Warnung_aktiv_HFS : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HFS_Zuziehhilfe_aktiv : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME - SG_ HFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME + SG_ HFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME + SG_ HFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME SG_ HFS_Status_KiSi : 44|1@1+ (1,0) [0|1] "" Vector__XXX SG_ SSR_HFS_Pos_Unten : 45|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HFS_Oben_Block_erw : 46|1@1+ (1,0) [0|1] "" Vector__XXX @@ -752,8 +1054,8 @@ BO_ 975 TSG_HBFS_01: 8 Gateway SG_ HBFS_FH_normiert : 39|1@1+ (1,0) [0|1] "" Vector__XXX SG_ ASW_Warnung_aktiv_HBFS : 40|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HBFS_Zuziehhilfe_aktiv : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HBFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME - SG_ HBFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME + SG_ HBFS_Seitenrollo_hoch : 42|1@1+ (1,0) [0|1] "" TME + SG_ HBFS_Seitenrollo_tief : 43|1@1+ (1,0) [0|1] "" TME SG_ HBFS_Status_KiSi : 44|1@1+ (1,0) [0|1] "" Vector__XXX SG_ SSR_HBFS_Pos_Unten : 45|1@1+ (1,0) [0|1] "" Vector__XXX SG_ HBFS_Oben_Block_erw : 46|1@1+ (1,0) [0|1] "" Vector__XXX @@ -770,11 +1072,11 @@ BO_ 975 TSG_HBFS_01: 8 Gateway SG_ HBFS_TIG_betaetigt_schliessen : 60|1@1+ (1,0) [0|1] "" Vector__XXX BO_ 976 TSG_FT_01: 8 Gateway - SG_ FT_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern,TME + SG_ FT_Tuer_geoeffnet : 0|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern,TME SG_ FT_verriegelt : 1|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_gesafet : 2|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ FT_Schluesselschalter_auf : 3|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV - SG_ FT_Schluesselschalter_zu : 4|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV + SG_ FT_Schluesselschalter_auf : 3|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV + SG_ FT_Schluesselschalter_zu : 4|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV SG_ FT_Unlock_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_Lock_Taster : 6|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_Sperrklinke : 7|1@1+ (1,0) [0|1] "" Vector__XXX @@ -782,8 +1084,8 @@ BO_ 976 TSG_FT_01: 8 Gateway SG_ FT_TIG_betaetigt : 9|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_IRUE_Taste : 10|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_HD_Taste : 11|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ FT_TD_Taste_Fehler : 12|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern - SG_ FT_TD_Taste : 13|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern + SG_ FT_TD_Taste_Fehler : 12|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern + SG_ FT_TD_Taste : 13|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern SG_ SSR_Temp_Freigabe : 14|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_Sp_Heizung_Anf : 15|1@1+ (100,0) [0|100] "Unit_PerCent" Vector__XXX SG_ FT_HD_Taste_2 : 16|1@1+ (1,0) [0|1] "" Vector__XXX @@ -793,7 +1095,7 @@ BO_ 976 TSG_FT_01: 8 Gateway SG_ FT_FH_S_AutoHoch : 21|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_FH_S_ManTief : 22|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_FH_S_AutoTief : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ FT_FH_Oeffnung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" TME + SG_ FT_FH_Oeffnung : 24|8@1+ (0.5,0) [0|100] "Unit_PerCent" TME SG_ FT_FH_Bew_hoch : 32|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_FH_Bew_tief : 33|1@1+ (1,0) [0|1] "" Vector__XXX SG_ FT_FH_Fang : 34|1@1+ (1,0) [0|1] "" Vector__XXX @@ -825,615 +1127,317 @@ BO_ 976 TSG_FT_01: 8 Gateway SG_ SWA_HMI_Diagnose : 60|2@1+ (1,0) [0|3] "" Vector__XXX SG_ FS_Status_eTAG : 62|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 997 TSG_FT_02: 8 Gateway - SG_ TSG_FT_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ TSG_FT_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ FT_Tuer_Status : 12|2@1+ (1.0,0.0) [0.0|3] "" OTA_FC,ZR_High - SG_ FT_Tuer_Status_QBit : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Lock_Taster_02 : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Schluesselschalter_zu_02 : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_BFS_Tuer_Status : 17|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ FT_HBFS_Tuer_Status : 19|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ FT_HFS_Tuer_Status : 21|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ FT_Tueroeffnen_Warnung : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FT_SP_Heizung_ein : 24|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FT_Kisi_Taster_li_02 : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_Kisi_Taster_re_02 : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ FT_TD_Taste_Status : 27|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ FT_TCR_Mode_aktiv : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ FS_Push_Tuergriff : 36|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - -BO_ 64 Airbag_01: 8 Gateway - SG_ Airbag_01_CRC : 0|8@1+ (1,0) [0|255] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway - SG_ Airbag_01_BZ : 8|4@1+ (1,0) [0|15] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway - SG_ AB_RGS_Anst : 12|4@1+ (1,0) [0|15] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Front_Crash : 16|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Heck_Crash : 17|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_SF_Crash : 18|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_SB_Crash : 19|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Rollover_Crash : 20|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Crash_Int : 21|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,Sub_Gateway,TME - SG_ AB_Lampe : 24|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Deaktiviert : 25|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_VB_deaktiviert : 26|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Systemfehler : 27|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Diagnose : 28|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Stellgliedtest : 29|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway,TME - SG_ AB_Erh_Auf_VB : 30|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Gurtwarn_VF : 32|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Gurtwarn_VB : 33|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Anzeige_Fussg : 34|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Texte_AKS : 36|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_MKB_gueltig : 39|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_MKB_Anforderung : 40|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Versorgungsspannung : 41|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Deaktivierung_HV : 42|3@1+ (1,0) [0|7] "" AWC,BMC_MLBevo,BMS_NV,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,DCDC_IHEV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,Sub_Gateway,TME - SG_ AB_EDR_Trigger : 45|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ AB_Belegung_VF : 47|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ SC_Masterzeit_Offset : 53|2@1+ (5.08,0) [0|15.24] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway - SG_ SC_LowSpeedCrashErkannt : 55|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV,Sub_Gateway - SG_ SC_Masterzeit : 57|7@1+ (0.04,0) [0|5.04] "Unit_Secon" FCU_MLBevo_FCEV,Sub_Gateway - -BO_ 1312 Airbag_02: 8 Gateway - SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ AB_Anforderung_eCall : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_Rollover : 18|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_FGS : 19|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_Front_Beifahrer : 20|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_Front_Fahrer : 21|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_Heck_Beifahrer : 22|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Anprall_Heck_Fahrer : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ AB_Wickelklappung_Reihe2_MI : 24|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ AB_Belegung_VB : 26|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ AB_Abschaltanf_SIH_BF : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ AB_Anprall_Seite_Fahrer : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ SC_PAO_Schriftzug_Anf : 30|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ SC_PAO_ON_Anf : 32|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ SC_PAO_OFF_Anf : 34|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ AB_Crashschwere : 36|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ AB_Anforderung_USM : 39|1@1+ (1.0,0.0) [0.0|1] "" ZR_Standard - SG_ AB_Gurtschloss_FA : 40|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High - SG_ AB_Gurtschloss_BF : 42|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ AB_Gurtschloss_Reihe2_FA : 44|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ AB_Gurtschloss_Reihe2_MI : 46|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ AB_Gurtschloss_Reihe2_BF : 48|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ AB_Gurtschloss_Reihe3_FA : 50|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High - SG_ AB_Gurtschloss_Reihe3_MI : 52|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High - SG_ AB_Gurtschloss_Reihe3_BF : 54|2@1+ (1.0,0.0) [0.0|3] "" BedienSG_hi,ZR_High - SG_ AB_Sitzpos_Sens_FA : 56|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ AB_Sitzpos_Sens_BF : 58|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ AB_Wickelklappung_Reihe2_BF : 60|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - -BO_ 1601 Motor_Code_01: 8 Motor_Diesel_MQB - SG_ Motor_Code_01_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB - SG_ Motor_Code_01_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ MO_Faktor_Momente_02 : 12|2@1+ (1,0) [0|3] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Hybridfahrzeug : 14|2@1+ (1,0) [0|3] "" Gateway_MQB - SG_ MO_Code : 16|8@1+ (1,0) [0|255] "" Gateway_MQB,SAK_MQB - SG_ MO_Getriebe_Code : 24|6@1+ (1,0) [0|63] "" Gateway_MQB - SG_ MO_StartStopp_Codiert : 30|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Anzahl_Zyl : 32|4@1+ (1,0) [0|15] "" Gateway_MQB - SG_ MO_Kraftstoffart : 36|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Hubraum : 40|7@1+ (0.1,0) [0|12.7] "Unit_Liter" Gateway_MQB - SG_ MO_Ansaugsystem : 47|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ MO_Leistung : 48|9@1+ (1,0) [0|511] "Unit_KiloWatt" Gateway_MQB - SG_ MO_Abgastyp_EOBD : 57|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB - SG_ MO_Abgastyp_OBD : 58|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB - SG_ MO_DPF_verbaut : 59|1@1+ (1,0) [0|1] "" Gateway_MQB - SG_ TSK_Codierung : 60|3@1+ (1,0) [0|7] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB - SG_ MO_Einspritzart : 63|1@1+ (1,0) [0|1] "" Gateway_MQB - -BO_ 1603 Einheiten_01: 8 Gateway - SG_ KBI_Einheit_Datum : 0|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KBI_Einheit_Druck : 2|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KBI_Einheit_Streckenanz : 4|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern - SG_ KBI_MFA_v_Einheit_02 : 5|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ KBI_Einheit_Temp : 6|1@1+ (1,0) [0|1] "" TME - SG_ KBI_Einheit_Uhrzeit : 7|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern - SG_ KBI_Einheit_Verbrauch : 8|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KBI_Einheit_Volumen : 10|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ KBI_Einheit_Verbrauch_elektr : 12|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ KBI_Einheit_Sprache : 16|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ KBI_Einheit_Verbrauch_Gas : 24|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ KBI_Einheit_Masse : 28|2@1+ (1,0) [0|3] "" Vector__XXX - -BO_ 1629 ESP_20: 8 Gateway - SG_ ESP_20_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ ESP_20_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ BR_Systemart : 12|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ESP_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ESP_Zaehnezahl : 16|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ ESP_Charisma_FahrPr : 24|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ ESP_Charisma_Status : 28|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ESP_Wiederstart_Anz_01 : 30|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Wiederstart_Anz_02 : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Wiederstart_Anz_03 : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Wiederstart_Anz_04 : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_01 : 34|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_02 : 35|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_03 : 36|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_04 : 37|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_05 : 38|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_06 : 39|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_07 : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_Std : 41|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ESP_Dachrelingsensor : 42|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ESP_Stoppverbot_Anz_08 : 44|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HDC_Charisma_FahrPr : 45|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HDC_Charisma_Status : 49|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" AWC - SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" AWC - -BO_ 1413 Systeminfo_01: 8 Gateway_MQB - SG_ SI_Sammel_SG_Fehler : 0|6@1+ (1,0) [0|60] "" Vector__XXX - SG_ SI_Rollenmode : 6|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ SI_QRS_Mode : 8|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ SI_T_Mode : 9|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_NWDF : 10|1@1+ (1,0) [0|1] "" SAK_MQB - SG_ SI_NWDF_gueltig : 11|1@1+ (1,0) [0|1] "" SAK_MQB - SG_ SI_Sammelfehler : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ GW_KD_Fehler : 13|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_01 : 16|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_02 : 17|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_03 : 18|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_04 : 19|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_05 : 20|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_06 : 21|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_07 : 22|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_08 : 23|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_09 : 24|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_10 : 25|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_11 : 26|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_12 : 27|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_13 : 28|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_14 : 29|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ SI_BUS_15 : 30|1@1+ (1,0) [0|1] "" Vector__XXX - -BO_ 891 GNSS_05: 8 Gateway - SG_ GNSS_UTC_Zeit : 0|32@1+ (1,0) [1|4294967295] "Unit_Secon" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Empfaenger_Status : 32|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_GPS_in_Nutzung : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_GLONASS_in_Nutzung : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Empfangbare_Satelliten : 35|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Sichtbare_Satelliten : 40|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Genutzte_Satelliten : 45|5@1+ (1,0) [1|30] "Unit_None" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Nachrichtenpaket_ID5 : 50|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard +BO_ 980 SMLS_01: 8 Gateway + SG_ SMLS_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ SMLS_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BH_Blinker_li : 12|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ BH_Blinker_re : 13|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ BH_Lichthupe : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ BH_Fernlicht : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Tipwischen : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Intervall : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_WischerStufe1 : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_WischerStufe2 : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Frontwaschen : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Heckintervall : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Heckwaschen : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ WH_Intervallstufen : 23|4@1+ (1,0) [0|15] "" ZR_High + SG_ FAS_Taster : 27|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ FAS_Taster_Fehler : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ SMLS_Hupe : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LRH_On_Off : 30|2@1+ (1,0) [0|3] "" ZR_High + SG_ LRH_aktiv : 40|1@1+ (1,0) [0|1] "" ZR_High + SG_ SMLS_P_verriegelt_plausibel : 43|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WH_SRA : 44|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ WH_Wischer_Fehler : 45|1@1+ (1,0) [0|1] "" ZR_High + SG_ BH_Blinker_Fehler : 46|1@1+ (1,0) [0|1] "" ZR_High + SG_ SMLS_PTT : 47|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ WH_Tipwischen_lang : 48|1@1+ (1,0) [0|1] "" ZR_High + +BO_ 981 Licht_Anf_01: 8 Gateway + SG_ Licht_Anf_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Licht_Anf_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BCM1_Kurvenlicht_links_Anf : 12|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Kurvenlicht_rechts_Anf : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Standlicht_Anf : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Abblendlicht_Anf : 15|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ BCM1_Fernlicht_Anf : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Nebellicht_Anf : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Parklicht_li_Anf : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Parklicht_re_Anf : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Nebelschluss_Ahg_Anf : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Nebelschluss_Fzg_Anf : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Schlusslicht_Anf : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM_Rueckfahrlicht_Anf : 23|1@1+ (1,0) [0|1] "" ZR_High,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ BCM1_Signaturlicht_Anf : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_Umfeldleuchten_Anf : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Tagfahrlicht_Anf : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Regenlicht_Anf : 27|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Autobahnlicht_Anf : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Touristen_Licht_Anf : 29|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_CH_aktiv : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_LH_aktiv : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Gleitende_Leuchtw_Anf : 32|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_GLW_Fernlicht_Anf : 33|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Adaptive_Lichtvert_Anf : 34|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_FoD_Sperrung_WiBli : 35|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM1_FOD_Sperrung_Animationen_HL : 37|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM1_Animationssperrung : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_CH_LH_aktiv : 40|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Allwetterlicht_Anf : 41|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Schlusslicht_Signatur : 60|4@1+ (1,0) [0|15] "" Vector__XXX -BO_ 888 GNSS_04: 8 Gateway - SG_ GNSS_Nachrichtenpaket_ID4 : 0|2@1+ (1,0) [0|3] "Unit_Bit" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Ortung_Zeit_in_GPSWoche : 2|30@1+ (1,0) [0|604800001] "Unit_MilliSecon" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ GNSS_Ortung_Hoehe : 32|12@1+ (2,-500) [-500|7686] "Unit_Meter" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard +BO_ 982 Licht_hinten_01: 8 Gateway + SG_ BCM2_Bremsl_durch_ECD : 5|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Aussenlicht_def : 7|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Standlicht_H_aktiv : 8|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Parklicht_HL_aktiv : 9|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Parklicht_HR_aktiv : 10|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Bremslicht_H_aktiv : 11|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Nebelschluss_aktiv : 12|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Rueckfahrlicht_aktiv : 13|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_HL_akt : 14|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_HR_akt : 15|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LH_Blinker_li_def : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Bremsl_li_def : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schlusslicht_li_def : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Rueckf_li_def : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Nebel_li_def : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schluss_Brems_Nebel_li_def : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schluss_Brems_Nebel_re_def : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Zusatzschlussl_def : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_li_def : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schluss_Nebel_li_def : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_SL_BRL_BLK_li_def : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Brems_Blk_li_def : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Diag_Status_re_def : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Diag_Status_li_def : 29|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Diag_LED_li_def : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Diag_LED_re_def : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Blinker_re_def : 32|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Bremsl_re_def : 33|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schlusslicht_re_def : 34|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Rueckf_re_def : 35|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Nebel_re_def : 36|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schluss_Brems_mi_def : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Schluss_Brems_re_def : 40|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schluss_Nebel_re_def : 41|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_SL_BRL_BLK_re_def : 42|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Brems_Blk_re_def : 43|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Kennzl_def : 48|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_3_Bremsl_def : 49|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Nebel_mi_def : 50|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Rueckf_mi_def : 51|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Schlusslicht_mi_def : 52|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremsl_mi_def : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1,0) [0|1] "" ZR_High + SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1,0) [0|1] "" ZR_High -BO_ 1524 Innenlicht_11: 8 Gateway - SG_ IL_Dimmung_V_Tuerkontur : 0|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High - SG_ IL_Dimmung_H_Tuerkontur : 8|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High - SG_ IL_Dimmung_Tuerinnengriff : 16|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High - SG_ IL_Dimmung_Umfeldbel : 24|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High - SG_ IL_Bel_FS_Ausstieg : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ IL_Bel_BFS_Ausstieg : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ IL_Bel_HFS_Ausstieg : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ IL_Bel_HBFS_Ausstieg : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Innenlicht_gedimmt_V : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Innenlicht_gedimmt_H : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ IL_Innenlicht_aktiv : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ IL_Klemme_30G_aktiv : 39|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_DI_Rampe_Innenlicht : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_DI_Rampe_Leselicht : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Innenlicht_H : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Innenlicht_V : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Leselicht_Anf_hl : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Leselicht_Anf_hr : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Leselicht_Anf_vl : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Leselicht_Anf_vr : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BCM1_Leuchten_Aus : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ AMB_Charisma_FahrPr : 49|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ AMB_Charisma_Status : 53|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ IL_Dimmung_Lautspr : 56|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High +BO_ 987 Gateway_72: 8 Gateway_MQB + SG_ BCM_01_alt : 0|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ SMLS_01_alt : 1|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ ZV_02_alt : 2|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Wischer_01_alt : 3|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Anhaenger_01_alt : 4|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ Klima_Sensor_02_alt : 5|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ VSG_01_alt : 6|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ Klima_01_alt : 7|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_01_alt : 8|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ Licht_Anf_01_alt : 9|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HFS_offen : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HBFS_offen : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ VS_VD_offen_ver : 22|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ VS_VD_zu_ver : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_BT_offen : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_Rueckfahrlicht_Schalter : 25|1@1+ (1,0) [0|1] "" Airbag_MQB + SG_ ZV_FT_offen : 26|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ Wischer_vorne_aktiv : 27|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ AAG_Anhaenger_erkannt : 28|1@1+ (1,0) [0|1] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ BCM1_MH_Schalter : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_HD_offen : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ Waschen_vorne_aktiv : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Thermomanagement : 32|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ WFS_Schluessel_Fahrberecht : 34|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BCM1_RFahrlicht_Fzg_Anf : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_RFahrlicht_Ahg_Anf : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BH_Fernlicht : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BH_Blinker_li : 50|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ BH_Blinker_re : 51|1@1+ (1,0) [0|1] "" Motor_Diesel_MQB,Motor_Otto_MQB + SG_ BCM1_OBD_FStatus_ATemp : 52|4@1+ (1,0) [0|15] "" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB + SG_ BCM1_Aussen_Temp_ungef : 56|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB -BO_ 1624 Licht_vorne_01: 8 Gateway - SG_ Licht_Vorne_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ Licht_Vorne_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ LV_Standlicht_Anzeige : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Abblendlicht_Anzeige : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Fernlicht_Anzeige : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Nebellicht_Anzeige : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Nebelschlusslicht_Anzeige : 16|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Tagfahrlicht_Anzeige : 17|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,OTA_FC,ZR_High - SG_ LV_AFL_aktiv_Anzeige : 18|1@1+ (1.0,0.0) [0.0|1] "" BedienSG_hi,OTA_FC,ZR_High - SG_ LV_AFL_defekt : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Blinker_li_def : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Standlicht_li_def : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblendlicht_li_def : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Fernlicht_li_def : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Nebellicht_li_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Blk_li_Seite_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Tagfahrlicht_li_def : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_FLA_aktiv_Anzeige : 27|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_FLA_defekt : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_FLA_Sensor_blockiert : 29|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Blinker_re_def : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Standlicht_re_def : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblendlicht_re_def : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Fernlicht_re_def : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Nebellicht_re_def : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Blk_re_Seite_def : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Tagfahrlicht_re_def : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Aussenlicht_def : 37|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblendlicht_TFL_li_def : 38|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Nebellicht_TFL_li_def : 39|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Standlicht_TFL_li_def : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblend_Fernlicht_li_def : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblendlicht_TFL_re_def : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Nebellicht_TFL_re_def : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Standlicht_TFL_re_def : 44|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abblend_Fernlicht_re_def : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LV_Abbiegelicht_li_def : 46|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LV_Abbiegelicht_re_def : 47|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ BCM1_Linksverkehr : 48|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ BCM1_Licht_Dunkelheit_aktiv : 49|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_LED_Scheinwerfer_li_def : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LV_LED_Scheinwerfer_re_def : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LV_Blinker_VL_aktiv : 52|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_Blinker_VR_aktiv : 53|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LV_MXB_Status_Anzeige : 54|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX +BO_ 988 Gateway_73: 8 XXX + SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX -BO_ 982 Licht_hinten_01: 8 Gateway - SG_ BCM2_Bremsl_durch_ECD : 5|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Aussenlicht_def : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Standlicht_H_aktiv : 8|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Parklicht_HL_aktiv : 9|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Parklicht_HR_aktiv : 10|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Bremslicht_H_aktiv : 11|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Nebelschluss_aktiv : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Rueckfahrlicht_aktiv : 13|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Blinker_HL_akt : 14|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Blinker_HR_akt : 15|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ LH_Blinker_li_def : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Bremsl_li_def : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schlusslicht_li_def : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Rueckf_li_def : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Nebel_li_def : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schluss_Brems_Nebel_li_def : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schluss_Brems_Nebel_re_def : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Zusatzschlussl_def : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_li_def : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schluss_Nebel_li_def : 25|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_SL_BRL_BLK_li_def : 26|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Brems_Blk_li_def : 27|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LH_Diag_Status_re_def : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Diag_Status_li_def : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Diag_LED_li_def : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Diag_LED_re_def : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Blinker_re_def : 32|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Bremsl_re_def : 33|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schlusslicht_re_def : 34|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Rueckf_re_def : 35|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Nebel_re_def : 36|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schluss_Brems_mi_def : 37|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LH_Schluss_Brems_re_def : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schluss_Nebel_re_def : 41|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_SL_BRL_BLK_re_def : 42|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Brems_Blk_re_def : 43|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Kennzl_def : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_3_Bremsl_def : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Nebel_mi_def : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Rueckf_mi_def : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Schlusslicht_mi_def : 52|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LH_Bremsl_mi_def : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LH_Bremsl_li_ges_def : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LH_Bremsl_re_ges_def : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - -BO_ 517 MEB_Light_01: 8 XXX - SG_ Brake_Light : 36|1@0+ (1,0) [0|1] "" XXX - SG_ Left_Blinker : 37|1@0+ (1,0) [0|1] "" XXX - SG_ Right_Blinker : 38|1@0+ (1,0) [0|1] "" XXX +BO_ 997 TSG_FT_02: 8 Gateway + SG_ TSG_FT_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ TSG_FT_02_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ FT_Tuer_Status : 12|2@1+ (1,0) [0|3] "" OTA_FC,ZR_High + SG_ FT_Tuer_Status_QBit : 14|1@1+ (1,0) [0|1] "" ZR_High + SG_ FT_Lock_Taster_02 : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ FT_Schluesselschalter_zu_02 : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ FT_BFS_Tuer_Status : 17|2@1+ (1,0) [0|3] "" ZR_High + SG_ FT_HBFS_Tuer_Status : 19|2@1+ (1,0) [0|3] "" ZR_High + SG_ FT_HFS_Tuer_Status : 21|2@1+ (1,0) [0|3] "" ZR_High + SG_ FT_Tueroeffnen_Warnung : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_SP_Heizung_ein : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FT_Kisi_Taster_li_02 : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ FT_Kisi_Taster_re_02 : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ FT_TD_Taste_Status : 27|2@1+ (1,0) [0|3] "" ZR_High + SG_ FT_TCR_Mode_aktiv : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FS_Push_Tuergriff : 36|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 817 MFL_01: 8 Gateway - SG_ MFL_Zaehler : 0|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MFL_Toggle : 4|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ MFL_Lokalaktiv : 5|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MFL_M_Taste : 6|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Paddle_Verbau : 7|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Tastencode_1 : 8|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ MFL_Tastencode_2 : 16|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ MFL_Eventcode_1 : 24|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ MFL_Eventcode_2 : 28|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ MFL_Marke : 32|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ MFL_Variante : 36|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ MFL_Dummy_0_Signal_1 : 40|8@1+ (1.0,0.0) [0.0|255] "" Vector__XXX - SG_ MFL_Tip_Down : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Tip_Up : 49|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_SatModul_links_Err : 50|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_SatModul_rechts_Err : 51|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Dummy_0_Signal_2 : 52|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MFL_Dummy_0_Signal_3 : 53|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MFL_LR_HZG_Status : 54|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_LR_HZG_Err : 55|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Signalhorn : 56|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ MFL_Signalhorn_Err : 57|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Tip_links_Err : 58|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Tip_rechts_Err : 59|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Taste_links_Err : 60|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Taste_rechts_Err : 61|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_ECU_Err : 62|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ MFL_Response_Err : 63|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX +BO_ 1004 MEB_TSK_01: 8 XXX + SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX -BO_ 706 Motor_41: 8 Gateway - SG_ MO_Anzeige_StSt_Text : 12|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ MO_Anzeige_StSt_Symbol : 16|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ MO_ADR_Status : 19|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ MO_AGA_Sound_Texte : 21|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Anzeige_FMAus_Text : 23|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_Fehler_MSpG : 24|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ PEA_Texte : 25|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ TSK_Ueberstimmt_vMax_FahrerInfo : 28|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Avus_Motorschutz : 30|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Rekuperationsstufe : 32|3@1+ (1.0,0.0) [0.0|7] "" OTA_FC - SG_ TSK_Einheit_vMax_FahrerInfo : 35|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ TSK_Status_vMax_FahrerInfo : 36|2@1+ (1.0,0.0) [0.0|3] "" Vector__XXX - SG_ MO_Red_Fahrleistung : 38|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ MO_Anz_Kuehlerluefter : 47|3@1+ (1.0,0.0) [0.0|7] "" Vector__XXX - SG_ MO_im_Leerlauf : 50|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ WIV_Enable_Oeldr_Motor : 51|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ MO_OelMessung_Dauer : 52|4@1+ (15,15) [15|225] "Unit_Secon" Vector__XXX - SG_ TSK_vMax_FahrerInfo : 56|8@1+ (1,15) [16|270] "" Vector__XXX +BO_ 1031 PLA_04: 8 XXX BO_ 1122 PSD_04: 8 ZR_High - SG_ PSD_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Vorgaenger_Segment_ID : 6|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Segmentlaenge : 12|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Strassenkategorie : 19|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Endkruemmung : 22|8@1+ (1,0) [0|254] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Endkruemmung_Vorz : 30|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Idenditaets_ID : 31|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_ADAS_Qualitaet : 37|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_wahrscheinlichster_Pfad : 38|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Geradester_Pfad : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Fahrspuren_Anzahl : 40|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Bebauung : 43|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Segment_Komplett : 44|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Rampe : 45|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Anfangskruemmung : 47|8@1+ (1,0) [0|254] "" Gateway,Gateway_PAG - SG_ PSD_Anfangskruemmung_Vorz : 55|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Abzweigerichtung : 56|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Abzweigewinkel : 57|7@1+ (1.417323,0) [0.000000|180.000021] "" Gateway,Gateway_PAG + SG_ PSD_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Vorgaenger_Segment_ID : 6|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Segmentlaenge : 12|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Strassenkategorie : 19|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Endkruemmung : 22|8@1+ (1,0) [0|254] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Endkruemmung_Vorz : 30|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Idenditaets_ID : 31|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_ADAS_Qualitaet : 37|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_wahrscheinlichster_Pfad : 38|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Geradester_Pfad : 39|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Fahrspuren_Anzahl : 40|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Bebauung : 43|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Segment_Komplett : 44|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Rampe : 45|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Anfangskruemmung : 47|8@1+ (1,0) [0|254] "" Gateway,Gateway_PAG + SG_ PSD_Anfangskruemmung_Vorz : 55|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Abzweigerichtung : 56|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Abzweigewinkel : 57|7@1+ (1.417323,0) [0|180.000021] "" Gateway,Gateway_PAG BO_ 1123 PSD_05: 8 ZR_High - SG_ PSD_Pos_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Pos_Segmentlaenge : 6|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Pos_Inhibitzeit : 13|5@1+ (10,0) [0|310] "Unit_MilliSecon" Gateway,Gateway_PAG - SG_ PSD_Pos_Standort_Eindeutig : 18|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Pos_Fehler_Laengsrichtung : 19|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Pos_Fahrspur : 22|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Attribut_Segment_ID_05 : 25|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_1_ID : 31|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_1_Wert : 36|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_1_Offset : 40|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Attribut_2_ID : 47|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_2_Wert : 52|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_2_Offset : 56|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Attribute_Komplett_05 : 63|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Segment_ID : 0|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Segmentlaenge : 6|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Pos_Inhibitzeit : 13|5@1+ (10,0) [0|310] "Unit_MilliSecon" Gateway,Gateway_PAG + SG_ PSD_Pos_Standort_Eindeutig : 18|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Fehler_Laengsrichtung : 19|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Pos_Fahrspur : 22|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Attribut_Segment_ID_05 : 25|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_ID : 31|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_Wert : 36|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_1_Offset : 40|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_ID : 47|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_Wert : 52|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_2_Offset : 56|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribute_Komplett_05 : 63|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG BO_ 1124 PSD_06: 8 ZR_High - SG_ PSD_06_Mux M : 0|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Segment_ID m0 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_Segment_ID m1 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Segment_ID m2 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Baum_Laenge_VZ m3 : 3|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_Segment_ID m4 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Baum_Laenge m3 : 4|25@1+ (0.00001,0) [0.00000|180.00000] "Unit_DegreOfArc" Gateway,Gateway_PAG - SG_ PSD_Sys_Laendercode m0 : 9|8@1+ (1.0,0.0) [0.0|255] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_3_ID m1 : 9|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Offset m2 : 9|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_A_Steigung m4 : 9|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG - SG_ PSD_Attribut_3_Offset m1 : 14|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit m2 : 16|5@1+ (1.0,0.0) [0.0|31] "" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Steigung_1_A_Vorz m4 : 16|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Geschwindigkeit_Einheit m0 : 17|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_A_Offset m4 : 17|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Sys_Verkehrsrichtung m0 : 18|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Geometrieguete m0 : 19|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Mapmatchingguete m0 : 21|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_3_Wert m1 : 21|4@1+ (1.0,0.0) [0.0|15] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Typ m2 : 21|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Alter_Karte m0 : 23|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Spur_Geschw_Begrenzung m2 : 23|6@1+ (1.0,0.0) [0.0|63] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_B_Steigung m4 : 24|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG - SG_ PSD_Attribut_4_ID m1 : 25|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Zielfuehrung m0 : 26|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG,OTA_FC - SG_ PSD_Sys_US_State m0 : 27|6@1+ (1.0,0.0) [0.0|63] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Gespann m2 : 29|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Baum_Breite_VZ m3 : 29|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_4_Wert m1 : 30|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG - SG_ PSD_Baum_Breite m3 : 30|24@1+ (0.00001,0) [0.00000|90.00000] "Unit_DegreOfArc" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Witter m2 : 31|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_B_Vorz m4 : 31|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_B_Offset m4 : 32|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Geometrien m0 : 33|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Tag_Anf m2 : 33|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_4_Offset m1 : 34|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Ortsinfo m0 : 36|2@1+ (1,0) [0|3] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Tag_Ende m2 : 36|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_verfuegbar m0 : 38|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Zielfuehrung_geaendert m0 : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Std_Anf m2 : 39|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG - SG_ PSD_Steigung_1_Attribute_kompl m4 : 39|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Geometrieguete_erweitert m0 : 40|8@1+ (1.0,0.0) [0.0|255] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_2_Segment_ID m4 : 40|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_5_ID m1 : 41|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Geschwindigkeit_Std_Ende m2 : 44|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG - SG_ PSD_Attribut_5_Offset m1 : 46|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Steigung_2_Steigung m4 : 46|7@1+ (0.12,0) [0.00|15.00] "Unit_PerCent" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_sonstige_Attribute m0 : 48|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Ges_Ueberholverbot m2 : 49|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Steigungen m0 : 51|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Wechselverkehrszeichen m2 : 51|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Attribut_5_Wert m1 : 53|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_2_Vorz m4 : 53|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Strassenkennz m0 : 54|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Wechselverkehrszeichen_Typ m2 : 54|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Baum_Ausrichtung m3 : 54|10@1+ (0.3515625,0) [0E-7|359.6484375] "Unit_DegreOfArc" Gateway,Gateway_PAG - SG_ PSD_Steigung_2_Offset m4 : 54|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG - SG_ PSD_Ges_Gesetzlich_Kategorie m2 : 56|3@1+ (1.0,0.0) [0.0|7] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Tempolimits m0 : 57|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Attribute_Komplett_06 m1 : 57|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Gesetzlich_Zusatz m2 : 59|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Sys_Quali_Vorfahrtsregelung m0 : 60|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG - SG_ PSD_Ges_Verkehrszeichen_Quelle m2 : 61|2@1+ (1.0,0.0) [0.0|3] "" Gateway,Gateway_PAG - SG_ PSD_Steigung_2_Attribute_kompl m4 : 61|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - SG_ PSD_Ges_Attribute_Komplett m2 : 63|1@1+ (1.0,0.0) [0.0|1] "" Gateway,Gateway_PAG - -BO_ 980 SMLS_01: 8 Gateway - SG_ SMLS_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ SMLS_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ BH_Blinker_li : 12|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard - SG_ BH_Blinker_re : 13|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard - SG_ BH_Lichthupe : 14|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BH_Fernlicht : 15|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Tipwischen : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Intervall : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_WischerStufe1 : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_WischerStufe2 : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Frontwaschen : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Heckintervall : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Heckwaschen : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ WH_Intervallstufen : 23|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - SG_ FAS_Taster : 27|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_Standard - SG_ FAS_Taster_Fehler : 28|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SMLS_Hupe : 29|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ LRH_On_Off : 30|2@1+ (1.0,0.0) [0.0|3] "" ZR_High - SG_ LRH_aktiv : 40|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SMLS_P_verriegelt_plausibel : 43|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ WH_SRA : 44|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ WH_Wischer_Fehler : 45|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ BH_Blinker_Fehler : 46|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SMLS_PTT : 47|1@1+ (1.0,0.0) [0.0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard - SG_ WH_Tipwischen_lang : 48|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - -BO_ 1710 Spiegel_01: 8 Gateway - SG_ SP_FT_oben : 0|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_FT_unten : 1|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_FT_links : 2|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_FT_rechts : 3|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_BT_oben : 4|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_BT_unten : 5|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_BT_links : 6|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_BT_rechts : 7|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_abklappen : 8|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_anklappen : 9|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_normieren : 10|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_Hzg_Taster : 12|1@1+ (1.0,0.0) [0.0|1] "" OTA_FC,ZR_High - SG_ SP_S_oben : 16|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_S_unten : 17|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_S_links : 18|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_S_rechts : 19|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_Auswahl_li : 20|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_Auswahl_re : 21|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_ARA_Status : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_S_Klappen : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ SP_Verstellschalter_Fehler : 24|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - -BO_ 605 KLR_01: 8 Gateway - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ KLR_Fehler : 12|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KLR_ResponseError : 13|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KLR_Lokalaktiv : 14|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KLR_Fehler_Codierung : 15|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - SG_ KLR_Touchintensitaet_1 : 16|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX - SG_ KLR_Touchintensitaet_2 : 24|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX - SG_ KLR_Touchintensitaet_3 : 32|8@1+ (1,0) [0|250] "Unit_None" Vector__XXX - SG_ KLR_Touchauswertung : 40|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - -BO_ 1440 RLS_01: 8 Gateway - SG_ LS_Helligkeit_IR : 0|8@1+ (400,0) [0|101200] "Unit_Lux" ZR_High - SG_ LS_Helligkeit_FW : 8|10@1+ (6,0) [0|6126] "Unit_Lux" ZR_High - SG_ LS_defekt : 22|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ LS_Verbau : 23|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ RS_Regenmenge : 24|4@1+ (10,0) [0|100] "Unit_PerCent" OTA_FC,ZR_High - SG_ RS_Verbau : 29|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ RS_Verglasung_schliessen : 30|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ RS_defekt : 31|1@1+ (1.0,0.0) [0.0|1] "" ZR_High - SG_ RS_Wischergeschwindigkeit : 32|3@1+ (1.0,0.0) [0.0|7] "" OTA_FC,ZR_High - SG_ RLS_Vorfeldhelligkeit_Boost : 35|4@1+ (1.0,0.0) [0.0|15] "" ZR_High - -BO_ 294 HCA_01: 8 Frontsensorik - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" Vector__XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ HCA_01_Vib_Freq : 12|4@1+ (1,15) [18|30] "Unit_Hertz" Vector__XXX - SG_ HCA_01_LM_Offset : 16|9@1+ (1,0) [0|511] "Unit_centiNewtoMeter" Vector__XXX - SG_ EA_ACC_Sollstatus : 25|2@1+ (1,0) [0|3] "" Frontradar - SG_ EA_Ruckprofil : 27|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ HCA_01_Enable : 30|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_LM_OffSign : 31|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Available : 32|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Standby : 33|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Request : 34|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ HCA_01_Vib_Amp : 36|4@1+ (0.2,0) [0|3] "Unit_NewtoMeter" Vector__XXX - SG_ EA_Ruckfreigabe : 40|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ EA_ACC_Wunschgeschwindigkeit : 41|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Frontradar - -BO_ 285 LH_EPS_02: 8 Gateway_D4C7 - SG_ EPS_02_CRC : 0|8@1+ (1,0) [0|255] "" SCU_D4 - SG_ EPS_02_BZ : 8|4@1+ (1,0) [0|15] "" SCU_D4 - SG_ EPS_Notlauf : 12|4@1+ (1.0,0.0) [0.0|15] "" Vector__XXX - SG_ EPS_Lastinfo : 16|8@1+ (1,0) [0|253] "Unit_Amper" Vector__XXX - SG_ EPS_Unterstuetzungsleistung : 24|8@1+ (0.5,0) [0.0|100.0] "Unit_PerCent" SCU_D4 - SG_ EPS_Drehzahlreserve : 32|7@1+ (10,0) [0|1000] "Unit_DegreOfArcPerSecon" SCU_D4 - SG_ EPS_VZ_Drehzahlreserve : 39|1@1+ (1.0,0.0) [0.0|1] "" SCU_D4 - SG_ EPS_Leistungsanforderung : 40|1@1+ (1.0,0.0) [0.0|1] "" Vector__XXX - -BO_ 159 LH_EPS_03: 8 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ EPS_DSR_Status : 12|4@1+ (1,0) [0|15] "" XXX - SG_ EPS_Berechneter_LW : 16|12@1+ (0.15,0) [0|613.95] "Unit_DegreOfArc" XXX - SG_ EPS_BLW_QBit : 30|1@1+ (1,0) [0|1] "" XXX - SG_ EPS_VZ_BLW : 31|1@1+ (1,0) [0|1] "" XXX - SG_ EPS_HCA_Status : 32|4@1+ (1,0) [0|15] "" XXX - SG_ EPS_Lenkmoment : 40|10@1+ (1,0) [0|8] "Unit_centiNewtoMeter" XXX - SG_ EPS_Lenkmoment_QBit : 54|1@1+ (1,0) [0|1] "" XXX - SG_ EPS_VZ_Lenkmoment : 55|1@1+ (1,0) [0|1] "" XXX - SG_ EPS_Lenkungstyp : 60|4@1+ (1,0) [0|15] "" XXX - -BO_ 919 LDW_02: 8 XXX - SG_ LDW_Gong : 12|2@1+ (1,0) [0|3] "" XXX - SG_ LDW_SW_Warnung_links : 14|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_SW_Warnung_rechts : 15|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Texte : 16|4@1+ (1,0) [0|15] "" XXX - SG_ LDW_Seite_DLCTLC : 20|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Lernmodus : 21|3@1+ (1,0) [0|7] "" XXX - SG_ LDW_Anlaufsp_VLR : 24|4@1+ (1,0) [0|15] "" XXX - SG_ LDW_Vib_Amp_VLR : 28|4@1+ (1,0) [0|15] "" XXX - SG_ LDW_Anlaufzeit_VLR : 32|4@1+ (1,0) [0|15] "" XXX - SG_ LDW_Lernmodus_rechts : 36|2@1+ (1,0) [0|3] "" XXX - SG_ LDW_Lernmodus_links : 38|2@1+ (1,0) [0|3] "" XXX - SG_ LDW_DLC : 40|8@1+ (0.01,-1.25) [-1.25|1.25] "Unit_Meter" XXX - SG_ LDW_TLC : 48|5@1+ (0.1,0) [0|3] "Unit_Secon" XXX - SG_ LDW_Warnung_links : 56|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Warnung_rechts : 57|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Codierinfo_fuer_VLR : 58|2@1+ (1,0) [0|3] "" XXX - SG_ LDW_Frontscheibenheizung_aktiv : 60|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Status_LED_gelb : 61|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_Status_LED_gruen : 62|1@1+ (1,0) [0|1] "" XXX - SG_ LDW_KD_Fehler : 63|1@1+ (1,0) [0|1] "" XXX - -BO_ 960 Klemmen_Status_01: 4 Gateway_MQB - SG_ Klemmen_Status_01_CRC : 0|8@1+ (1,0) [0|255] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ Klemmen_Status_01_COUNT : 8|4@1+ (1,0) [0|15] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ZAS_Kl_S : 16|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZAS_Kl_15 : 17|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB - SG_ ZAS_Kl_X : 18|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ZAS_Kl_50 : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ PSD_06_Mux M : 0|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Segment_ID m0 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Laendercode m0 : 9|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geschwindigkeit_Einheit m0 : 17|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Verkehrsrichtung m0 : 18|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geometrieguete m0 : 19|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Mapmatchingguete m0 : 21|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Alter_Karte m0 : 23|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Zielfuehrung m0 : 26|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Sys_US_State m0 : 27|6@1+ (1,0) [0|63] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Geometrien m0 : 33|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Ortsinfo m0 : 36|2@1+ (1,0) [0|3] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_verfuegbar m0 : 38|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Zielfuehrung_geaendert m0 : 39|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Geometrieguete_erweitert m0 : 40|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_sonstige_Attribute m0 : 48|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Steigungen m0 : 51|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Strassenkennz m0 : 54|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Tempolimits m0 : 57|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Sys_Quali_Vorfahrtsregelung m0 : 60|3@1+ (1,0) [0|7] "Unit_None" Gateway,Gateway_PAG + SG_ PSD_Attribut_Segment_ID m1 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_ID m1 : 9|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_Offset m1 : 14|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribut_3_Wert m1 : 21|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_ID m1 : 25|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_Wert m1 : 30|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_4_Offset m1 : 34|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_ID m1 : 41|5@1+ (1,0) [1|31] "" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_Offset m1 : 46|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Attribut_5_Wert m1 : 53|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ PSD_Attribute_Komplett_06 m1 : 57|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Segment_ID m2 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Offset m2 : 9|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit m2 : 16|5@1+ (1,0) [0|31] "" Gateway,Gateway_PAG,OTA_FC + SG_ PSD_Ges_Typ m2 : 21|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Spur_Geschw_Begrenzung m2 : 23|6@1+ (1,0) [0|63] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Gespann m2 : 29|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Witter m2 : 31|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Tag_Anf m2 : 33|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Tag_Ende m2 : 36|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Std_Anf m2 : 39|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG + SG_ PSD_Ges_Geschwindigkeit_Std_Ende m2 : 44|5@1+ (1,0) [0|24] "Unit_Hours" Gateway,Gateway_PAG + SG_ PSD_Ges_Ueberholverbot m2 : 49|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Wechselverkehrszeichen m2 : 51|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Wechselverkehrszeichen_Typ m2 : 54|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Gesetzlich_Kategorie m2 : 56|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Gesetzlich_Zusatz m2 : 59|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Verkehrszeichen_Quelle m2 : 61|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ PSD_Ges_Attribute_Komplett m2 : 63|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Laenge_VZ m3 : 3|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Laenge m3 : 4|25@1+ (1e-05,0) [0|180] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Baum_Breite_VZ m3 : 29|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Baum_Breite m3 : 30|24@1+ (1e-05,0) [0|90] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Baum_Ausrichtung m3 : 54|10@1+ (0.3515625,0) [0|359.6484375] "Unit_DegreOfArc" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_Segment_ID m4 : 3|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_A_Steigung m4 : 9|7@1+ (0.12,0) [0|15] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_A_Vorz m4 : 16|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_A_Offset m4 : 17|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Steigung m4 : 24|7@1+ (0.12,0) [0|15] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Vorz m4 : 31|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_B_Offset m4 : 32|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Steigung_1_Attribute_kompl m4 : 39|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Segment_ID m4 : 40|6@1+ (1,0) [2|63] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Steigung m4 : 46|7@1+ (0.12,0) [0|15] "Unit_PerCent" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Vorz m4 : 53|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Offset m4 : 54|7@1+ (2,0) [0|254] "Unit_Meter" Gateway,Gateway_PAG + SG_ PSD_Steigung_2_Attribute_kompl m4 : 61|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + +BO_ 1153 MainUnit_01: 8 ZR_High + SG_ ZR_LoGeWa_Event_Kombiwarnung : 0|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ Nav_FoD_Status : 4|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ MIB_Tongenerator_PH_verfuegbar : 9|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ MMI_Counter_Bedienevent : 12|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ DSSS_Warning : 16|5@1+ (1,0) [0|31] "" Gateway,Gateway_PAG + SG_ ZR_Kindersicherung_RSE : 21|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ ZR_RSE_aktivieren : 22|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ MMI_SDS_aktiv : 23|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ MU_SecondDisplay : 24|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG + SG_ MMI_Telefon_aktiv : 27|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG + SG_ MMI_Gurt_Mic_ref : 28|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,GurtMikrofon + SG_ ZR_Sta_Inszenierung : 29|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ MMI_Gauges_active : 31|1@1+ (1,0) [0|1] "" BedienDisp_vo,Gateway,Gateway_PAG + SG_ MU_Update_Time : 32|8@1+ (0.1,0) [0|25.5] "Unit_Hours" Gateway,Gateway_PAG + SG_ ZR_MXB_Manoever_Ansage : 42|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ ZR_LAPP_Sondermodus_Status : 44|2@1+ (1,0) [0|3] "" DDA,Gateway,Gateway_PAG + SG_ MMI_StartStopp_Info : 46|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG + SG_ ZR_Parken_Sondermodus : 48|4@1+ (1,0) [0|15] "" DDA,Gateway,Gateway_PAG + SG_ ZR_Rundenbewertung : 52|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG + SG_ ZR_Rundenfortschritt : 56|8@1+ (0.5,0) [0|100] "Unit_PerCent" Gateway,Gateway_PAG + +BO_ 1155 Motor_Hybrid_06: 8 Gateway + SG_ Mo_Powermeter_Grenze : 0|12@1+ (1,0) [0|4092] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ MO_Text_Aktivierung_Antrieb : 12|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ MO_Powermeter_Inszenierung_aktiv : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_Powermeter_Charge_Grenze : 18|10@1+ (1,0) [0|1021] "Unit_None" Vector__XXX + SG_ MO_Powermeter_Grenze_strategisch : 28|12@1+ (1,0) [0|4093] "Unit_None" Vector__XXX + SG_ MO_Powermeter_untere_E_Grenze : 40|12@1+ (1,0) [0|4093] "Unit_None" Vector__XXX + SG_ MO_Powermeter_obere_E_Grenze : 52|12@1+ (1,0) [0|4093] "Unit_None" Vector__XXX + +BO_ 1163 BEM_06: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX BO_ 1175 Parkhilfe_01: 8 Gateway - SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC + SG_ PH_Visualisierung : 0|3@1+ (1,0) [0|7] "" AWC SG_ PDC_Tonausgabe_Front : 4|4@1+ (1,0) [0|15] "" Vector__XXX SG_ PDC_Tonausgabe_Heck : 8|4@1+ (1,0) [0|15] "" Vector__XXX SG_ PH_nachtr_Stopp_Anf : 12|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ PH_Abschaltursache : 13|3@1+ (1,0) [0|7] "" AWC + SG_ PH_Abschaltursache : 13|3@1+ (1,0) [0|7] "" AWC SG_ PH_Opt_Anzeige_V_ein : 16|1@1+ (1,0) [0|1] "" Vector__XXX SG_ PH_Opt_Anzeige_H_ein : 17|1@1+ (1,0) [0|1] "" Vector__XXX SG_ PH_Opt_Anz_V_Hindernis : 18|1@1+ (1,0) [0|1] "" Vector__XXX @@ -1454,12 +1458,84 @@ BO_ 1175 Parkhilfe_01: 8 Gateway SG_ PH_Stoermeldung : 52|4@1+ (1,0) [0|15] "" Vector__XXX SG_ PH_defekt : 56|1@1+ (1,0) [0|1] "" Vector__XXX SG_ PH_gestoert : 57|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ PH_Systemzustand : 58|3@1+ (1,0) [0|7] "" AWC + SG_ PH_Systemzustand : 58|3@1+ (1,0) [0|7] "" AWC SG_ PH_Display_Kundenwunsch : 61|2@1+ (1,0) [0|3] "" Vector__XXX +BO_ 1283 HVK_01: 8 Gateway + SG_ HVK_01_CRC : 0|8@1+ (1,0) [0|255] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME + SG_ HVK_01_BZ : 8|4@1+ (1,0) [0|15] "" BMC_MLBevo,DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo,TME + SG_ HVK_Istmodus_Anf : 12|1@1+ (1,0) [0|1] "" BMC_MLBevo,DCDC_HV,FCU_MLBevo_FCEV,Ladegeraet_2,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo + SG_ HVK_TN1_Sollmodus : 13|2@1+ (1,0) [0|3] "" DCDC_HV_02,FCU_MLBevo_FCEV + SG_ HVK_MO_EmSollzustand : 16|8@1+ (1,0) [0|255] "" FCU_MLBevo_FCEV + SG_ HVK_BMS_Sollmodus : 24|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV + SG_ HVK_DCDC_Sollmodus : 27|3@1+ (1,0) [0|7] "" DCDC_800V_PAG,DCDC_HV,FCU_MLBevo_FCEV,LE_MLBevo + SG_ HVK_EKK_Sollmodus : 30|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME + SG_ HVK_HVPTC_Sollmodus : 33|3@1+ (1,0) [0|7] "" FCU_MLBevo_FCEV,TME + SG_ HVK_HVLM_Sollmodus : 36|3@1+ (1,0) [0|7] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern + SG_ HVK_HV_Netz_Warnungen : 39|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV + SG_ HV_Bordnetz_aktiv : 41|1@1+ (1,0) [0|1] "" DCDC_HV_02,FCU_MLBevo_FCEV,Ladegeraet_Konzern,LE1,LE2,LE_MLBevo + SG_ HV_Bordnetz_Fehler : 42|1@1+ (1,0) [0|1] "" FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME + SG_ HVK_Gesamtst_Spgfreiheit : 43|2@1+ (1,0) [0|3] "" FCU_MLBevo_FCEV + SG_ HVK_AktiveEntladung_Anf : 45|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,DCDC_HV_02,FCU_MLBevo_FCEV,LE1,LE2,LE_MLBevo + SG_ HVK_Iso_Messung_Start : 50|3@1+ (1,0) [0|7] "" BMC_MLBevo,FCU_MLBevo_FCEV + SG_ HVK_DCDC_EKK_Sollmodus : 62|2@1+ (1,0) [0|3] "" DCDC_800V_PAG,FCU_MLBevo_FCEV + +BO_ 1312 Airbag_02: 8 Gateway + SG_ LoGeWa_Event_Kombiwarnung : 12|4@1+ (1,0) [0|15] "" ZR_High + SG_ AB_Anforderung_eCall : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ AB_Anprall_Seite_Beifahrer : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_Rollover : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_FGS : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_Front_Beifahrer : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_Front_Fahrer : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_Heck_Beifahrer : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Anprall_Heck_Fahrer : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AB_Wickelklappung_Reihe2_MI : 24|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AB_Belegung_VB : 26|2@1+ (1,0) [0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Abschaltanf_SIH_BF : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ AB_Anprall_Seite_Fahrer : 29|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SC_PAO_Schriftzug_Anf : 30|2@1+ (1,0) [0|3] "" ZR_High + SG_ SC_PAO_ON_Anf : 32|2@1+ (1,0) [0|3] "" ZR_High + SG_ SC_PAO_OFF_Anf : 34|2@1+ (1,0) [0|3] "" ZR_High + SG_ AB_Crashschwere : 36|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ AB_Anforderung_USM : 39|1@1+ (1,0) [0|1] "" ZR_Standard + SG_ AB_Gurtschloss_FA : 40|2@1+ (1,0) [0|3] "" BedienSG_hi,GurtMikrofon,ZR_High + SG_ AB_Gurtschloss_BF : 42|2@1+ (1,0) [0|3] "" BedienSG_hi,GurtMikrofon,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_FA : 44|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_MI : 46|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe2_BF : 48|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ AB_Gurtschloss_Reihe3_FA : 50|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High + SG_ AB_Gurtschloss_Reihe3_MI : 52|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High + SG_ AB_Gurtschloss_Reihe3_BF : 54|2@1+ (1,0) [0|3] "" BedienSG_hi,ZR_High + SG_ AB_Sitzpos_Sens_FA : 56|2@1+ (1,0) [0|3] "" ZR_High + SG_ AB_Sitzpos_Sens_BF : 58|2@1+ (1,0) [0|3] "" ZR_High + SG_ AB_Wickelklappung_Reihe2_BF : 60|2@1+ (1,0) [0|3] "" ZR_High + SG_ AB_Wickelklappung_Reihe2_FA : 62|2@1+ (1,0) [0|3] "" ZR_High + +BO_ 1349 Airbag_04: 8 Gateway + SG_ AB_Gurtwarn_Reihe2_FA : 20|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AB_Gurtwarn_Reihe2_BF : 22|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AbstWarn_MV_FAS_Fkt_Status : 24|2@1+ (1,0) [0|3] "" ZR_High + SG_ WarnBrems_Charisma_Status : 26|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ WarnBrems_Charisma_FahrPr : 28|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ AB_Gurtwarn_Reihe2_MI : 32|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AB_Gurtwarn_Reihe3_FA : 34|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AB_Gurtwarn_Reihe3_MI : 36|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AB_Gurtwarn_Reihe3_BF : 38|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ LGI_FAS_Fkt_Status : 40|2@1+ (1,0) [0|3] "" ZR_High + SG_ PreCrash_FAS_Fkt_Status : 42|3@1+ (1,0) [0|7] "" ZR_High + SG_ AB_SBR_hinten_verbau : 48|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ AWV_Einstellung_System_ASG : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AWV_Einstellung_Warnung_ASG : 52|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ SC_PreSense_Modus_Warnung_NV : 55|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ SC_PreSense_Modus_Warnung_MV : 58|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ SC_PreSense_Modus_System_MV : 61|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SC_PreSense_Modus_System_NV : 62|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ SC_PreSense_Modus_System_KAS : 63|1@1+ (1,0) [0|1] "" Vector__XXX + BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PH_Verschmutzungsmeldung : 12|4@1+ (1,0) [0|15] "" Vector__XXX - SG_ PH_Aufschaltursache : 16|5@1+ (1,0) [0|31] "" AWC + SG_ PH_Aufschaltursache : 16|5@1+ (1,0) [0|31] "" AWC SG_ PH_Ton_Ausgabe : 21|3@1+ (1,0) [0|7] "" Vector__XXX SG_ PH_Ton_Pausenlaenge : 24|8@1+ (1,0) [0|255] "" Vector__XXX SG_ PH_Ton_Richtung : 49|3@1+ (1,0) [0|7] "" Vector__XXX @@ -1468,280 +1544,686 @@ BO_ 1355 Parkhilfe_04: 8 Gateway SG_ PDC_Charisma_Status : 58|2@1+ (1,0) [0|3] "" Vector__XXX SG_ PDC_Charisma_FahrPr : 60|4@1+ (1,0) [0|15] "" Vector__XXX -BO_ 252 MEB_ESP_01: 48 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ AEB_Breaking_01 : 24|8@1+ (1,0) [0|255] "" XXX - SG_ AEB_Breaking_02 : 32|8@1+ (1,0) [0|255] "" XXX - SG_ Accelerator_Higher_Speed : 40|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 42|9@1+ (0.195,0) [0|100] "Unit_Percent" XXX - SG_ HL_Radgeschw : 64|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX - SG_ HR_Radgeschw : 80|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX - SG_ VL_Radgeschw : 96|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX - SG_ VR_Radgeschw : 112|16@1+ (0.0075,0) [0|491.5125] "Unit_KilometerPerHour" XXX - SG_ HL_Brake_Pressure : 152|8@1+ (1,0) [0|100] "" XXX - SG_ HR_Brake_Pressure : 160|8@1+ (1,0) [0|100] "" XXX - SG_ VL_Brake_Pressure : 168|8@1+ (1,0) [0|100] "" XXX - SG_ VR_Brake_Pressure : 176|8@1+ (1,0) [0|100] "" XXX - SG_ Steering_Wheel_CW : 184|8@1+ (1.67,0) [0|255] "" XXX - SG_ Steering_Wheel_CCW : 192|8@1+ (1.67,0) [0|255] "" XXX +BO_ 1361 WFS_01: 8 Gateway + SG_ WFS_Schluessel_Fahrberecht : 0|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ WFS_ID_Geb_autorisiert : 5|1@1+ (1,0) [0|1] "" ZR_High + SG_ WFS_ID_Geb_autorisiert_in_Kl15 : 6|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_ID_Geb_steckt : 7|1@1+ (1,0) [0|1] "" ZR_High + SG_ WFS_Schluessel_Soll : 8|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ WFS_Schluessel_Ist : 12|4@1+ (1,0) [0|15] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ WFS_Safe : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_LZ : 17|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ WFS_ELV_authorisiert : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_LF_Aktiv : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_Betrieb_Lesespule : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_Klemmenfreigabe : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ WFS_Fahrerhinweise : 34|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ WFS_Parken_Status : 36|2@1+ (1,0) [0|3] "" Vector__XXX + +BO_ 1385 MEB_HVEM_03: 8 XXX + SG_ NEW_SIGNAL_12 : 0|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_1 : 1|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_10 : 3|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 4|2@1+ (1,0) [0|3] "" XXX + SG_ PTC_ON : 7|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 25|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_13 : 32|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_4 : 33|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_11 : 35|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_5 : 36|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_6 : 38|1@0+ (1,0) [0|1] "" XXX + SG_ PTC_ein_02 : 39|1@0+ (1,0) [0|1] "" XXX + SG_ PTC_ein_03 : 57|1@0+ (1,0) [0|1] "" XXX + SG_ PTC_ein_04 : 59|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 61|2@1+ (1,0) [0|3] "" XXX -BO_ 192 MEB_ESP_02: 32 XXX - SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX +BO_ 1411 ZV_02: 8 Gateway + SG_ BCM_FH_Freigabe : 12|1@1+ (1,0) [0|1] "" BedienDisp_vo + SG_ BCM_Komfortfkt_Freigabe : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM_HSK_Freigabe : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM_Verdeck_Freigabe : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_verriegelt_intern_ist : 16|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High + SG_ ZV_verriegelt_extern_ist : 17|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High + SG_ ZV_verriegelt_intern_soll : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_verriegelt_extern_soll : 19|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_gesafet_extern_ist : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_gesafet_extern_soll : 21|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 + SG_ ZV_Einzeltuerentriegelung : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_Heckeinzelentriegelung : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_FT_offen : 24|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_BT_offen : 25|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HFS_offen : 26|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HBFS_offen : 27|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HD_offen : 28|1@1+ (1,0) [0|1] "" DDA,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ ZV_HS_offen : 29|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ IRUE_aktiv : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ DWA_aktiv : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ HD_Hauptraste : 32|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ HD_Vorraste : 33|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ FFB_CarFinder : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FFB_Komfortoeffnen : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ FFB_Komfortschliessen : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_Schluessel_Zugang : 42|4@1+ (1,0) [0|15] "" ZR_High + SG_ ZV_SafeFunktion_aktiv : 46|1@1+ (1,0) [0|1] "" ZR_High + SG_ FBS_Warn_Schluessel_Batt : 47|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_Oeffnungsmodus : 48|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HFS_verriegelt : 50|1@1+ (1,0) [0|1] "" OTA_FC + SG_ HFS_gesafet : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HBFS_verriegelt : 52|1@1+ (1,0) [0|1] "" OTA_FC + SG_ HBFS_gesafet : 53|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ZV_ist_Zustand_verfuegbar : 54|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ IRUE_Taster_Fkts_LED : 55|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_Tankklappe_offen : 56|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_Rollo_auf : 57|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_Rollo_zu : 58|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_SAD_auf : 59|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_SAD_zu : 60|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM_Tankklappensteller_Fehler : 61|1@1+ (1,0) [0|1] "" ZR_High + SG_ ZV_verriegelt_soll : 62|2@1+ (1,0) [0|3] "" Vector__XXX + +BO_ 1413 Systeminfo_01: 8 Gateway + SG_ SI_Sammel_SG_Fehler : 0|6@1+ (1,0) [0|60] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_Diagnose_Aktiv : 7|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_QRS_Mode : 8|1@1+ (1,0) [0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_T_Mode : 9|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_NWDF : 10|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_NWDF_gueltig : 11|1@1+ (1,0) [0|1] "" BedienDisp_vo,BedienSG_hi,DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_Sammelfehler : 12|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ GW_KD_Fehler : 13|1@1+ (1,0) [0|1] "" ZR_High,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_T_Schutz : 14|1@1+ (1,0) [0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_01 : 16|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_02 : 17|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_03 : 18|1@1+ (1,0) [0|1] "" BedienSG_hi,DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_04 : 19|1@1+ (1,0) [0|1] "" BedienSG_hi,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_05 : 20|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_06 : 21|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_07 : 22|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_08 : 23|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_09 : 24|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_10 : 25|1@1+ (1,0) [0|1] "" BedienSG_hi,DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_11 : 26|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_12 : 27|1@1+ (1,0) [0|1] "" DDA,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_13 : 28|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_14 : 29|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_BUS_15 : 30|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_Bus_Identifikation : 32|8@1+ (1,0) [0|255] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + SG_ SI_CAB : 40|24@1+ (1,0) [0|16777215] "" BedienSG_hi,OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3,ZR_Standard + +BO_ 1420 Klemmen_Steuerung_01: 8 Gateway + SG_ Klemmen_Steuerung_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Klemmen_Steuerung_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KST_Txt_P_Gang : 16|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_Txt_Panikabschaltung : 17|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_Anf_Klemmenfreigabe_ELV : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_Txt_Komfortabschaltung : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_ZAT_betaetigt : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ KST_Unterdr_Zuendungsmeldung : 21|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_aut_Abschaltung_Zuendung : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KST_Anf_ZV_Verriegelung : 24|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ Relais_VoKo_angesteuert : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ RSt_Anforderung_HMS : 26|3@1+ (1,0) [0|7] "" Vector__XXX + +BO_ 1426 Kessy_04: 8 XXX -BO_ 332 MEB_ESP_03: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Accelerator_Pressure : 175|8@0+ (0.391,-14.467) [0|100] "Unit_Percent" XXX +BO_ 1440 RLS_01: 8 Gateway + SG_ LS_Helligkeit_IR : 0|8@1+ (400,0) [0|101200] "Unit_Lux" ZR_High + SG_ LS_Helligkeit_FW : 8|10@1+ (6,0) [0|6126] "Unit_Lux" ZR_High + SG_ LS_defekt : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ LS_Verbau : 23|1@1+ (1,0) [0|1] "" ZR_High + SG_ RS_Regenmenge : 24|4@1+ (10,0) [0|100] "Unit_PerCent" OTA_FC,ZR_High + SG_ RS_Verbau : 29|1@1+ (1,0) [0|1] "" ZR_High + SG_ RS_Verglasung_schliessen : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ RS_defekt : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ RS_Wischergeschwindigkeit : 32|3@1+ (1,0) [0|7] "" OTA_FC,ZR_High + SG_ RLS_Vorfeldhelligkeit_Boost : 35|4@1+ (1,0) [0|15] "" ZR_High -BO_ 258 MEB_ESP_04: 48 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Lateral_Accel : 16|8@1+ (0.15,-18.9) [0|255] "Unit_MeterPerSquareSecond" XXX - SG_ Longitudinal_Accel : 24|10@1+ (0.03125,-16) [0|255] "Unit_MeterPerSquareSecond" XXX - SG_ Yaw_Rate : 40|14@1+ (0.01,0) [0|16383] "Unit_DegreePerSecond" XXX - SG_ Yaw_Rate_Sign : 54|1@0+ (1,0) [0|1] "" XXX - SG_ Regen_Braking : 123|1@1+ (1,0) [0|7] "" XXX - SG_ Standstill : 171|1@0+ (1,0) [0|1] "" XXX - SG_ Longitudinal_Speed : 181|10@1+ (0.25,0) [0|255] "Unit_KilometerPerHour" XXX +BO_ 1442 BMS_04: 8 BMC_MLBevo + SG_ BMS_04_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_04_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_Status_ServiceDisconnect : 13|1@1+ (1,0) [0|1] "" DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_Status_Spgfreiheit : 14|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_OBD_Lampe_Anf : 16|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ BMS_IstModus : 17|3@1+ (1,0) [0|7] "" AWC,Gateway,Gateway_PAG,Ladegeraet_Konzern,LE1,LE2,LE2_3_MLBevo_LB,Sub_Gateway,TME + SG_ BMS_Fehlerstatus : 20|3@1+ (1,0) [0|7] "" AWC,DCDC_800V_PAG,DCDC_HV,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway + SG_ BMS_Kapazitaet_02 : 23|11@1+ (0.2,0) [0|409.2] "Unit_AmperHour" Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway + SG_ BMS_Soll_SOC_HiRes : 53|11@1+ (0.05,0) [0|100] "Unit_PerCent" Gateway,Gateway_PAG,Sub_Gateway + +BO_ 1447 TM_01: 8 Gateway + SG_ TM_Spiegel_Anklappen : 47|1@1+ (1,0) [0|1] "" ZR_High + SG_ TM_Nur_Hupen : 48|1@1+ (1,0) [0|1] "" ZR_High + SG_ TM_Door_Lock : 49|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ TM_Door_Unlock : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ TM_Warnblinken : 51|1@1+ (1,0) [0|1] "" ZR_High + SG_ TM_Panik_Alarm : 52|1@1+ (1,0) [0|1] "" ZR_High + SG_ TM_ZV_Signatur : 53|11@1+ (1,0) [1|2047] "Unit_None" Vector__XXX -BO_ 313 MEB_ESP_05: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Brake_Pressed_1 : 16|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressed_2 : 27|1@0+ (1,0) [0|1] "" XXX - SG_ AEB_Active : 31|1@0+ (1,0) [0|1] "" XXX - SG_ ESP_Hold : 35|1@0+ (1,0) [0|1] "" XXX - SG_ Brake_Pressed_3 : 48|1@0+ (1,0) [0|1] "" XXX - SG_ FCW_Active : 56|1@1+ (1,0) [0|1] "" XXX - SG_ Brake_Pressure : 76|11@1+ (1,0) [0|100] "" XXX +BO_ 1452 HVEM_02: 8 Gateway + SG_ HVEM_IstStrom_HVVerbraucher : 0|12@1+ (0.1,-204.7) [-204.7|204.6] "Unit_Amper" Vector__XXX + SG_ HVEM_Energie_Klima_Vorgabe_HighR : 12|3@1+ (10,0) [0|50] "Unit_WattHour" TME + SG_ HVEM_IstLeistungNA : 15|9@1+ (50,0) [0|25450] "Unit_Watt" Vector__XXX + SG_ HVEM_Leistung_Klima_Vorgabe : 24|8@1+ (50,0) [0|12650] "Unit_Watt" TME + SG_ HVEM_Nutzbare_Energie : 32|11@1+ (50,0) [0|102200] "Unit_WattHour" Ladegeraet_Konzern + SG_ HVEM_Energie_Klima_Vorgabe : 43|8@1+ (50,0) [0|12650] "Unit_WattHour" TME + SG_ HVEM_MO_MaxLeistungIgnoriert : 63|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 522 MEB_ABS_01: 64 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Yaw_Rate_VZ : 33|1@1+ (1,0) [0|1] "" XXX - SG_ Yaw_Rate : 200|16@1+ (0.007,-229.34) [0|255] "" XXX +BO_ 1485 DCDC_03: 8 DCDC_800V_PAG + SG_ DCDC_03_CRC : 0|8@1+ (1,0) [0|255] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DCDC_03_BZ : 8|4@1+ (1,0) [0|15] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Fehlerstatus : 16|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Peakstrom_verfuegbar : 19|1@1+ (1,0) [0|1] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Abregelung_Temperatur : 20|1@1+ (1,0) [0|1] "" Gateway_PAG,Sub_Gateway,TME + SG_ DC_IstModus_02 : 21|3@1+ (1,0) [0|7] "" DCDC_HV_02,Gateway,Gateway_PAG,Ladegeraet_Konzern,Sub_Gateway,TME + SG_ DC_HV_EKK_IstModus : 28|3@1+ (1,0) [0|7] "" Gateway,Gateway_PAG,Sub_Gateway,TME + SG_ DC_Status_Spgfreiheit_HV : 46|2@1+ (1,0) [0|3] "" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_IstSpannung_EKK_HV : 48|8@1+ (2,0) [0|508] "Unit_Volt" Gateway,Gateway_PAG,Sub_Gateway + SG_ DC_Temperatur : 56|8@1+ (1,-40) [-40|213] "Unit_DegreCelsi" Gateway,Gateway_PAG,Sub_Gateway,TME + +BO_ 1505 Klima_Sensor_02: 8 Gateway + SG_ BCM1_Aussen_Temp_ungef : 0|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" BMC_MLBevo,BMS_NV,FCU_MLBevo_FCEV,Ladegeraet_Konzern,TME + SG_ BCM_Heizungsabsperrventil_Status : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM_Heizungspumpe_Status : 10|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM_Kompressorkupplung_Status : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BCM1_PTC_stufig_Status : 28|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ BCM1_FStatus_Aussentemp_ungef : 31|1@1+ (1,0) [0|1] "" TME + SG_ BCM1_Kompressorstrom_ist : 32|8@1+ (4,0) [0|1000] "Unit_MilliAmper" Vector__XXX + SG_ BCM1_OBD_FStatus_ATemp : 44|4@1+ (1,0) [0|15] "" BMC_MLBevo,Ladegeraet_Konzern,TME + +BO_ 1513 Klima_Sensor_04: 8 Gateway + SG_ DS_Kaeltemittel_P : 8|11@1+ (0.0161,0) [0|32.9245] "Unit_Bar" TME + SG_ DS_Status : 19|2@1+ (1,0) [0|3] "" TME + SG_ ION_Status : 21|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ION_Status_LED : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ AAU_Geblaese : 24|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ ION_Status_Taster : 31|1@1+ (1,0) [0|1] "" Vector__XXX + +BO_ 1520 Dimmung_01: 8 Gateway_MQB + SG_ DI_KL_58xd : 0|8@1+ (1,0) [0|253] "" Airbag_MQB + SG_ DI_KL_58xs : 8|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ DI_Display_Nachtdesign : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ DI_KL_58xt : 16|7@1+ (1,0) [0|100] "Unit_PerCent" Vector__XXX + SG_ DI_Fotosensor : 24|16@1+ (1,0) [0|65535] "" Vector__XXX + +BO_ 1524 Innenlicht_11: 8 Gateway + SG_ IL_Dimmung_V_Tuerkontur : 0|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_H_Tuerkontur : 8|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_Tuerinnengriff : 16|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Dimmung_Umfeldbel : 24|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + SG_ IL_Bel_FS_Ausstieg : 32|1@1+ (1,0) [0|1] "" ZR_High + SG_ IL_Bel_BFS_Ausstieg : 33|1@1+ (1,0) [0|1] "" ZR_High + SG_ IL_Bel_HFS_Ausstieg : 34|1@1+ (1,0) [0|1] "" ZR_High + SG_ IL_Bel_HBFS_Ausstieg : 35|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Innenlicht_gedimmt_V : 36|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Innenlicht_gedimmt_H : 37|1@1+ (1,0) [0|1] "" ZR_High + SG_ IL_Innenlicht_aktiv : 38|1@1+ (1,0) [0|1] "" ZR_High + SG_ IL_Klemme_30G_aktiv : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_DI_Rampe_Innenlicht : 40|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_DI_Rampe_Leselicht : 41|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Innenlicht_H : 42|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Innenlicht_V : 43|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_hl : 44|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_hr : 45|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_vl : 46|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Leselicht_Anf_vr : 47|1@1+ (1,0) [0|1] "" ZR_High + SG_ BCM1_Leuchten_Aus : 48|1@1+ (1,0) [0|1] "" ZR_High + SG_ AMB_Charisma_FahrPr : 49|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ AMB_Charisma_Status : 53|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ IL_Dimmung_Lautspr : 56|8@1+ (1,0) [0|100] "Unit_PerCent" ZR_High + +BO_ 1600 Motor_07: 8 Motor_Diesel_MQB + SG_ MO_QBit_Ansaugluft_Temp : 0|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_QBit_Oel_Temp : 1|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_QBit_Kuehlmittel_Temp : 2|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Stellgliedtest_Soundaktuator : 3|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_HYB_Fehler_HV_Netz : 4|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_aktives_Getriebeheizen : 5|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Absperrventil_oeffnen : 6|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Ansaugluft_Temp : 8|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB + SG_ MO_Oel_Temp : 16|8@1+ (1,-60) [-60|192] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Kuehlmittel_Temp : 24|8@1+ (0.75,-48) [-48|141.75] "Unit_DegreCelsi" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB + SG_ MO_Hoeheninfo : 32|8@1+ (0.00781,0) [0|1.98374] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Kennfeldk : 40|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Versionsinfo : 41|6@1+ (1,0) [0|63] "" Gateway_MQB + SG_ MO_Getriebe_kuehlen : 47|1@1+ (1,0) [0|1] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Mom_Traegheit_02 : 48|5@1+ (0.01,0) [0|0.31] "Unit_KiloGramMeterSquar" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Heizungspumpenansteuerung : 53|4@1+ (10,0) [0|100] "Unit_PerCent" Gateway_MQB + SG_ MO_SpannungsAnf : 57|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Nachlaufzeit_Heizungspumpe : 58|6@1+ (15,0) [0|945] "Unit_Secon" Gateway_MQB -BO_ 261 MEB_ABS_02: 8 XXX - SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX - SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX - SG_ NEW_SIGNAL_5 : 13|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_4 : 20|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_3 : 32|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 40|2@1+ (1,0) [0|3] "" XXX - SG_ Brake : 53|7@1+ (1,0) [0|3] "" XXX +BO_ 1601 Motor_Code_01: 8 Motor_Diesel_MQB + SG_ Motor_Code_01_CRC : 0|8@1+ (1,0) [0|255] "" Gateway_MQB + SG_ Motor_Code_01_BZ : 8|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ MO_Faktor_Momente_02 : 12|2@1+ (1,0) [0|3] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Hybridfahrzeug : 14|2@1+ (1,0) [0|3] "" Gateway_MQB + SG_ MO_Code : 16|8@1+ (1,0) [0|255] "" Gateway_MQB,SAK_MQB + SG_ MO_Getriebe_Code : 24|6@1+ (1,0) [0|63] "" Gateway_MQB + SG_ MO_StartStopp_Codiert : 30|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Anzahl_Zyl : 32|4@1+ (1,0) [0|15] "" Gateway_MQB + SG_ MO_Kraftstoffart : 36|4@1+ (1,0) [0|15] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Hubraum : 40|7@1+ (0.1,0) [0|12.7] "Unit_Liter" Gateway_MQB + SG_ MO_Ansaugsystem : 47|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ MO_Leistung : 48|9@1+ (1,0) [0|511] "Unit_KiloWatt" Gateway_MQB + SG_ MO_Abgastyp_EOBD : 57|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB + SG_ MO_Abgastyp_OBD : 58|1@1+ (1,0) [0|1] "" BMS_MQB,Gateway_MQB,LEH_MQB + SG_ MO_DPF_verbaut : 59|1@1+ (1,0) [0|1] "" Gateway_MQB + SG_ TSK_Codierung : 60|3@1+ (1,0) [0|7] "" Gateway_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB + SG_ MO_Einspritzart : 63|1@1+ (1,0) [0|1] "" Gateway_MQB -BO_ 988 MEB_EPB_01: 8 XXX - SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX +BO_ 1603 Einheiten_01: 8 Gateway + SG_ KBI_Einheit_Datum : 0|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Druck : 2|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Streckenanz : 4|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern + SG_ KBI_MFA_v_Einheit_02 : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KBI_Einheit_Temp : 6|1@1+ (1,0) [0|1] "" TME + SG_ KBI_Einheit_Uhrzeit : 7|1@1+ (1,0) [0|1] "" Ladegeraet_Konzern + SG_ KBI_Einheit_Verbrauch : 8|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Volumen : 10|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KBI_Einheit_Verbrauch_elektr : 12|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ KBI_Einheit_Sprache : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KBI_Einheit_Verbrauch_Gas : 24|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ KBI_Einheit_Masse : 28|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 317 MEB_EPS_01: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX - SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX - SG_ Steering_Angle_VZ_02 : 36|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle_02 : 40|15@1+ (0.0171,0) [0|65535] "" XXX - SG_ Steering_Angle_VZ : 55|1@0+ (1,0) [0|1] "" XXX - SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX +BO_ 1622 ELV_01: 8 Gateway + SG_ ELV_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ELV_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ ELV_Anf_Klemme_S : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Anf_Klemme_15 : 13|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Anf_Klemme_50 : 14|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_01_Sendestatus : 15|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Verriegelt : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_Entriegelt : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_ZAT_betaetigt : 18|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Lebenszustand : 19|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Anlernmodus : 20|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Klemmenfreigabe : 22|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Abbruch_Anf_Klemmenfreigabe : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_LED_Rot : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_LED_Gelb : 25|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Txt_Panikabschaltung : 27|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Txt_Lkg_Bewegen : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_Txt_Werkstatt : 29|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_Txt_Defekt : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ ELV_Txt_P_Gang : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Txt_PN_Gang : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Txt_Kupplung : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_Txt_Bremse : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ELV_P_verriegelt : 35|1@1+ (1,0) [0|1] "" Vector__XXX -BO_ 771 HCA_03: 24 XXX - SG_ Standby : 13|1@1+ (1,0) [0|1] "" XXX - SG_ Request : 14|1@1+ (1,0) [0|1] "" XXX - SG_ Unknown_02 : 15|1@1+ (1,0) [0|1] "" XXX - SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Power_Boost : 23|1@1+ (1,0) [0|1] "" XXX - SG_ Curvature : 24|15@1+ (0.0000067,0) [0|0.219] "Unit_rad/m" XXX - SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX - SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX - SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX - SG_ Active : 66|1@1+ (1,0) [0|1] "" XXX +BO_ 1624 Licht_vorne_01: 8 Gateway + SG_ Licht_Vorne_01_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ Licht_Vorne_01_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ LV_Standlicht_Anzeige : 12|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Abblendlicht_Anzeige : 13|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Fernlicht_Anzeige : 14|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Nebellicht_Anzeige : 15|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Nebelschlusslicht_Anzeige : 16|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Tagfahrlicht_Anzeige : 17|1@1+ (1,0) [0|1] "" BedienSG_hi,OTA_FC,ZR_High + SG_ LV_AFL_aktiv_Anzeige : 18|1@1+ (1,0) [0|1] "" BedienSG_hi,OTA_FC,ZR_High + SG_ LV_AFL_defekt : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Blinker_li_def : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Standlicht_li_def : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblendlicht_li_def : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Fernlicht_li_def : 23|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Nebellicht_li_def : 24|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Blk_li_Seite_def : 25|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Tagfahrlicht_li_def : 26|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_FLA_aktiv_Anzeige : 27|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_FLA_defekt : 28|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_FLA_Sensor_blockiert : 29|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Blinker_re_def : 30|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Standlicht_re_def : 31|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblendlicht_re_def : 32|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Fernlicht_re_def : 33|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Nebellicht_re_def : 34|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Blk_re_Seite_def : 35|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Tagfahrlicht_re_def : 36|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Aussenlicht_def : 37|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblendlicht_TFL_li_def : 38|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Nebellicht_TFL_li_def : 39|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Standlicht_TFL_li_def : 40|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblend_Fernlicht_li_def : 41|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblendlicht_TFL_re_def : 42|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Nebellicht_TFL_re_def : 43|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Standlicht_TFL_re_def : 44|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abblend_Fernlicht_re_def : 45|1@1+ (1,0) [0|1] "" ZR_High + SG_ LV_Abbiegelicht_li_def : 46|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LV_Abbiegelicht_re_def : 47|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ BCM1_Linksverkehr : 48|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ BCM1_Licht_Dunkelheit_aktiv : 49|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_LED_Scheinwerfer_li_def : 50|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LV_LED_Scheinwerfer_re_def : 51|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ LV_Blinker_VL_aktiv : 52|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_Blinker_VR_aktiv : 53|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ LV_MXB_Status_Anzeige : 54|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 267 MEB_Motor_01: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Accel_Pedal_Pressure : 12|9@1+ (0.4,0) [0|255] "" XXX - SG_ Accel_Low_Pressed_Support : 21|1@1+ (1,0) [0|7] "" XXX - SG_ TSK_Status : 88|3@1+ (1,0) [0|7] "" XXX - SG_ TSK_Limiter_ausgewaehlt : 95|1@1+ (1,0) [0|3] "" XXX +BO_ 1629 ESP_20: 8 Gateway + SG_ ESP_20_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ESP_20_BZ : 8|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ BR_Systemart : 12|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Zaehnezahl : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ ESP_Charisma_FahrPr : 24|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ ESP_Charisma_Status : 28|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_01 : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_02 : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_03 : 32|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Wiederstart_Anz_04 : 33|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_01 : 34|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_02 : 35|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_03 : 36|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_04 : 37|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_05 : 38|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_06 : 39|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_07 : 40|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_Std : 41|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ ESP_Dachrelingsensor : 42|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ ESP_Stoppverbot_Anz_08 : 44|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ HDC_Charisma_FahrPr : 45|4@1+ (1,0) [0|15] "" Vector__XXX + SG_ HDC_Charisma_Status : 49|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ BR_QBit_Reifenumfang : 51|1@1+ (1,0) [0|1] "" AWC + SG_ BR_Reifenumfang : 52|12@1+ (1,0) [0|4095] "Unit_MilliMeter" AWC -BO_ 588 MEB_Side_Assist_01: 16 XXX - SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX - SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX - SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Pre_Warn_Right : 27|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Warn_Left : 29|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Pre_Warn_Left : 30|1@0+ (1,0) [0|1] "" XXX - SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX - SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX - SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX - SG_ Lower_Speed_02 : 84|1@0+ (1,0) [0|1] "" XXX - SG_ Standstill : 86|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_1 : 98|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_6 : 119|1@0+ (1,0) [0|1] "" XXX +BO_ 1631 Motor_16: 8 Gateway + SG_ TSK_Grundmasse : 0|8@1+ (32,0) [0|8128] "Unit_KiloGram" ZR_High + SG_ TSK_QBit_Steigung : 12|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ TSK_QBit_Fahrzeugmasse : 13|1@1+ (1,0) [0|1] "" ZR_High + SG_ MO_SpannungsAnf_02 : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_DPF_reg : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ MO_Heizstrom_EKAT : 17|7@1+ (1,0) [0|126] "Unit_Amper" Vector__XXX + SG_ MO_Heizstrom_SCR : 24|6@1+ (1,0) [0|62] "Unit_Amper" Vector__XXX + SG_ MO_Anzeige_Kaltleuchte : 30|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ MO_P_Generator_ungefiltert_Anf : 31|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ TSK_Getriebeinfo : 34|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ MO_Energieinhalt_BMS : 36|12@1+ (25,0) [0|102325] "Unit_WattHour" Vector__XXX + SG_ TSK_Fahrzeugmasse_02 : 48|8@1+ (32,0) [0|8128] "Unit_KiloGram" OTA_FC,ZR_High + SG_ TSK_Steigung_02 : 56|8@1+ (0.8,-101.6) [-100.8|101.6] "Unit_PerCent" OTA_FC -BO_ 589 MEB_Side_Assist_02: 64 XXX - SG_ Unknown_01 : 100|3@0+ (1,0) [0|7] "" XXX - SG_ Unknown_02 : 108|3@0+ (1,0) [0|7] "" XXX +BO_ 1640 Klima_12: 8 Gateway + SG_ KL_LRH_Taster : 0|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_LRH_Stufe : 1|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ HSH_Taster : 3|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ FSH_Taster : 5|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ KL_Zuheizer_Freigabe : 6|1@1+ (1,0) [0|1] "" TME + SG_ KL_Beschlagsgefahr : 7|1@1+ (1,0) [0|1] "" TME + SG_ KL_SIH_Soll_li : 8|3@1+ (1,0) [0|7] "" TME + SG_ KL_SIH_Soll_re : 11|3@1+ (1,0) [0|7] "" TME + SG_ KRH_Soll_li : 14|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_SIL_Soll_li : 16|3@1+ (1,0) [0|7] "" TME + SG_ KL_SIL_Soll_re : 19|3@1+ (1,0) [0|7] "" TME + SG_ KRH_Soll_re : 22|2@1+ (1,0) [0|3] "" Vector__XXX + SG_ KL_Geblspng_Soll : 24|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX + SG_ KL_Geblspng_Fond_Soll : 32|8@1+ (0.05,1.45) [1.5|14] "Unit_Volt" Vector__XXX + SG_ KL_I_Geblaese : 40|8@1+ (0.25,0) [0|63.5] "Unit_Amper" Vector__XXX + SG_ KL_Kompressorstrom_soll : 48|10@1+ (1,0) [0|1021] "" TME + SG_ KL_Umluftklappe_Status : 58|4@1+ (1,0) [0|15] "" TME + SG_ KL_PTC_Verbauinfo : 62|2@1+ (1,0) [0|3] "" Vector__XXX -BO_ 591 MEB_Distance_01: 64 XXX - SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX - SG_ Distance_Status : 13|2@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_ObjectID : 16|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Left_Lane_01_ObjectID : 22|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Right_Lane_01_ObjectID : 28|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Same_Lane_02_ObjectID : 34|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Left_Lane_02_ObjectID : 40|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Right_Lane_02_ObjectID : 46|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX - SG_ Unknown_02 : 52|2@1+ (1,0) [0|3] "" XXX - SG_ Unknown_03 : 54|10@1+ (1,0) [0|3] "" XXX - SG_ Same_Lane_01_Long_Distance : 64|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Same_Lane_01_Lat_Distance : 76|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Same_Lane_01_Rel_Velo : 86|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_01_Long_Distance : 96|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Left_Lane_01_Lat_Distance : 108|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Left_Lane_01_Rel_Velo : 118|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_01_Long_Distance : 128|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Right_Lane_01_Lat_Distance : 140|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Right_Lane_01_Rel_Velo : 150|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Same_Lane_02_Long_Distance : 160|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Same_Lane_02_Lat_Distance : 172|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Same_Lane_02_Rel_Velo : 182|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Left_Lane_02_Long_Distance : 192|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Left_Lane_02_Lat_Distance : 204|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Left_Lane_02_Rel_Velo : 214|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Right_Lane_02_Long_Distance : 224|12@1+ (0.07,-6) [0|300] "Unit_Meter" XXX - SG_ Right_Lane_02_Lat_Distance : 236|10@1+ (0.065,-33.28) [-50|50] "Unit_Meter" XXX - SG_ Right_Lane_02_Rel_Velo : 246|10@1+ (0.25,-128) [-100|100] "Unit_MeterPerSecond" XXX - SG_ Unknown_04 : 256|8@1+ (1,-128) [0|31] "" XXX - SG_ Unknown_05 : 264|6@1+ (1,-15) [0|31] "" XXX - SG_ Unknown_06 : 270|6@1+ (1,0) [0|127] "" XXX - SG_ Unknown_07 : 277|6@1+ (1,0) [0|7] "" XXX - SG_ Unknown_08 : 286|3@0+ (1,0) [0|1] "" XXX +BO_ 1648 Motor_18: 8 Gateway + SG_ MO_max_Ladedruck : 0|6@1+ (0.1,0) [0|6.3] "Unit_Bar" Sub_Gateway + SG_ MO_ANC_Kennfeld_Anf : 6|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Bremslicht_Reku : 8|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_StartStopp_PopUp : 9|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO1_Sperr_Info_WFS : 11|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO1_Freigabe_Info_WFS : 12|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_EPCL : 13|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Zylabsch_Texte_02 : 16|4@1+ (1,0) [0|15] "" Sub_Gateway + SG_ MO_Fahrzeugtyp : 20|3@1+ (1,0) [0|7] "" BMS_NV,Sub_Gateway + SG_ MO_NMAX_Schaltanzeige : 23|9@1+ (25,0) [0|12775] "Unit_MinutInver" Sub_Gateway + SG_ MO_Abstellzeit : 32|8@1+ (8,0) [0|2024] "Unit_Minut" BMS_NV,Sub_Gateway,TME + SG_ MO_Abstellzeit_Status : 40|2@1+ (1,0) [0|3] "" BMS_NV,Sub_Gateway,TME + SG_ MO1_Freigabe_Verfallsinfo_WFS : 42|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_Hybrid_StartStopp_LED : 43|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Fehler_Zylabsch : 45|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Anzahl_Abgesch_Zyl : 47|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Zylabsch_Texte : 50|2@1+ (1,0) [0|3] "" Sub_Gateway + SG_ MO_Ethanol_BS_Texte : 52|3@1+ (1,0) [0|7] "" Sub_Gateway + SG_ MO_Drehzahl_Warnung : 55|1@1+ (1,0) [0|1] "" Sub_Gateway + SG_ MO_obere_Drehzahlgrenze : 56|8@1+ (50,0) [50|12750] "Unit_MinutInver" Sub_Gateway -BO_ 768 MEB_ACC_01: 48 XXX - SG_ ACC_Tempolimit : 64|5@1+ (1,0) [0|31] "" OTA_FC - SG_ ACC_Wunschgeschw_Farbe : 69|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ACC_Warnung_Verkehrszeichen_1 : 70|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ACA_Querfuehrung : 71|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ Unknown_02 : 73|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Regelung_AIO : 75|1@1+ (1,0) [0|1] "" ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ACC_Wunschgeschw_02 : 76|10@1+ (0.32,0) [0|327.04] "Unit_KiloMeterPerHour" Vector__XXX - SG_ ACC_Abstandsindex_02 : 86|10@1+ (1,0) [1|1021] "" Vector__XXX - SG_ ACC_Display_Prio : 96|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ACC_rel_Objekt_Zusatzanz : 98|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ ACC_Gesetzte_Zeitluecke : 101|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ ACC_Optischer_Fahrerhinweis : 104|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ACC_Warnhinweis : 105|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ACC_EGO_Fahrzeug : 106|3@1+ (1,0) [0|7] "" Vector__XXX - SG_ ACC_Relevantes_Objekt_02 : 109|2@1+ (1,0) [0|3] "" OTA_FC,ZR_High,ZR_LIMU,ZR_MIB_TOP_ab_Gen3 - SG_ ACC_Wunschgeschw_erreicht : 112|1@1+ (1,0) [0|1] "" OTA_FC - SG_ ACC_Anzeige_Zeitluecke : 113|1@1+ (1,0) [0|1] "" Vector__XXX - SG_ ACC_Texte_Primaeranz_02 : 114|6@1+ (1,0) [0|63] "" Vector__XXX - SG_ ACC_Texte_Zusatzanz_02 : 120|6@1+ (1,0) [0|63] "" Vector__XXX - SG_ STA_Primaeranz : 126|2@1+ (1,0) [0|3] "" Vector__XXX - SG_ SET_ME_0X3FF : 140|10@1+ (1,0) [0|15] "" XXX - SG_ Heartbeat : 150|9@1+ (1,0) [0|3] "" XXX - SG_ SET_ME_0XFFFF : 160|16@1+ (1,0) [0|65535] "" XXX - SG_ ACC_Enabled : 186|1@0+ (1,0) [0|1] "" XXX - SG_ Zeitluecke_Farbe : 189|1@0+ (1,0) [0|1] "" XXX - SG_ SET_ME_0X1 : 199|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Status_ACC : 208|3@1+ (1,0) [0|7] "" XXX - SG_ Unknown_04 : 211|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_08 : 224|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_01 : 225|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_06 : 226|1@0+ (1,0) [0|1] "" XXX - SG_ Unknown_07 : 228|1@0+ (1,0) [0|1] "" XXX - SG_ SET_ME_0X7FFF : 240|16@1+ (1,0) [0|65535] "" XXX - SG_ Unknown_09 : 262|1@0+ (1,0) [0|3] "" XXX - SG_ Lead_Type_Detected : 265|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Standby_Override : 266|1@0+ (1,0) [0|1] "" XXX - SG_ Street_Color : 267|1@0+ (1,0) [0|1] "" XXX - SG_ ACC_Limiter_Mode : 268|1@0+ (1,0) [0|1] "" XXX - SG_ Lead_Brightness : 269|4@1+ (1,0) [0|7] "" XXX - SG_ SET_ME_0X6A : 273|8@1+ (1,0) [0|7] "" XXX - SG_ Lead_Type : 287|3@1+ (1,0) [0|3] "" XXX - SG_ Lead_Distance : 290|10@1+ (0.2,0) [0|7] "Unit_Meter" XXX - SG_ ACC_Events : 332|4@0+ (1,0) [0|3] "Unit_Meter" XXX - SG_ Zeitluecke_1 : 334|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_2 : 344|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_3 : 354|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_4 : 364|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX - SG_ Zeitluecke_5 : 374|9@1+ (0.2,0) [0|100] "Unit_Meter" XXX +BO_ 1710 Spiegel_01: 8 Gateway + SG_ SP_FT_oben : 0|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_FT_unten : 1|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_FT_links : 2|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_FT_rechts : 3|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_BT_oben : 4|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_BT_unten : 5|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_BT_links : 6|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_BT_rechts : 7|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_abklappen : 8|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_anklappen : 9|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_normieren : 10|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_Hzg_Taster : 12|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ SP_S_oben : 16|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_S_unten : 17|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_S_links : 18|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_S_rechts : 19|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_Auswahl_li : 20|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_Auswahl_re : 21|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_ARA_Status : 22|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_S_Klappen : 23|1@1+ (1,0) [0|1] "" ZR_High + SG_ SP_Verstellschalter_Fehler : 24|1@1+ (1,0) [0|1] "" ZR_High + +BO_ 1711 Rear_View_01: 8 Gateway + SG_ RV_Video_on : 0|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_Dark_Screen : 1|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_HMI_Mode : 2|2@1+ (1,0) [0|3] "" ZR_High,ZR_Standard + SG_ RV_GL_side : 4|2@1+ (1,0) [0|3] "" ZR_High,ZR_Standard + SG_ RV_System_aktiv : 6|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_Reinigung_Anf : 7|1@1+ (1,0) [0|1] "" OTA_FC,ZR_High + SG_ RV_Settings_enabled : 8|1@1+ (1,0) [0|1] "" ZR_High + SG_ RV_Menu_Item : 9|2@1+ (1,0) [0|3] "" ZR_High + SG_ SV_Video_on : 11|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_Calib_Fehler : 12|1@1+ (1,0) [0|1] "" ZR_High + SG_ RV_GL_Trailer_connect : 13|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_GL_Trunk_open : 14|1@1+ (1,0) [0|1] "" ZR_High,ZR_Standard + SG_ RV_GL_LWS_Fehler : 15|1@1+ (1,0) [0|1] "" ZR_High + SG_ RV_Helligkeit : 16|7@1+ (1,0) [0|100] "Unit_PerCent" ZR_High,ZR_Standard + SG_ ZFAS_Umfeldbeleuchtung_Anf : 23|1@1+ (1,0) [0|1] "" Vector__XXX + SG_ RV_Kontrast : 24|7@1+ (1,0) [0|100] "Unit_PerCent" ZR_High,ZR_Standard + SG_ RV_Farbe : 32|7@1+ (1,0) [0|100] "Unit_PerCent" ZR_High,ZR_Standard -BO_ 333 MEB_ACC_02: 32 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ ACC_limitierte_Anfahrdyn : 12|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_nachtr_Stopp_Anf : 13|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_DynErhoehung : 14|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Freilaufstrategie_TSK : 15|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_zul_Regelabw_unten : 16|6@1+ (0.024,0) [0|1.512] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_StartStopp_Info : 22|2@1+ (1,0) [0|3] "" XXX - SG_ ACC_Sollbeschleunigung_02 : 24|11@1+ (0.005,-7.22) [-7.22|3.005] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_zul_Regelabw_oben : 35|5@1+ (0.0625,0) [0|1.9375] "Unit_MeterPerSeconSquar" XXX - SG_ ACC_neg_Sollbeschl_Grad_02 : 40|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX - SG_ ACC_pos_Sollbeschl_Grad_02 : 48|8@1+ (0.05,0) [0|12.75] "Unit_MeterPerCubicSecon" XXX - SG_ ACC_Anfahren : 56|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Anhalten : 57|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Typ : 58|2@1+ (1,0) [0|3] "" XXX - SG_ ACC_Status_ACC : 60|3@1+ (1,0) [0|7] "" XXX - SG_ ACC_Minimale_Bremsung : 63|1@1+ (1,0) [0|1] "" XXX - SG_ ACC_Anhalteweg : 64|11@1+ (0.01,0) [0|2046] "" XXX - SG_ ACC_Anforderung_HMS : 77|3@1+ (1,0) [0|7] "" XXX - SG_ SET_ME_0XFE : 80|8@1+ (1,0) [0|255] "" XXX - SG_ ACC_AKTIV_regelt : 90|1@0+ (1,0) [0|1] "" XXX - SG_ SET_ME_0X1 : 92|1@0+ (1,0) [0|1] "" XXX - SG_ SET_ME_0X9 : 232|4@1+ (1,0) [0|15] "" XXX - SG_ Speed : 236|11@1+ (0.1,0) [0|15] "" XXX - SG_ Accel_Boost : 248|6@1+ (1,0) [0|3] "" XXX - SG_ Reversing : 254|1@0+ (1,0) [0|1] "" XXX +BO_ 1714 Diagnose_01: 8 Gateway_MQB + SG_ DGN_Verlernzaehler : 0|8@1+ (1,0) [0|254] "" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,SAK_MQB + SG_ KBI_Kilometerstand : 8|20@1+ (1,0) [0|1048573] "Unit_KiloMeter" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Jahr : 28|7@1+ (1,2000) [2000|2127] "Unit_Year" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Monat : 35|4@1+ (1,0) [1|12] "Unit_Month" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Tag : 39|5@1+ (1,0) [1|31] "Unit_Day" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Stunde : 44|5@1+ (1,0) [0|23] "Unit_Hours" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Minute : 49|6@1+ (1,0) [0|59] "Unit_Minut" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ UH_Sekunde : 55|6@1+ (1,0) [0|59] "Unit_Secon" Airbag_MQB,BMS_MQB,Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,LEH_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB,SAK_MQB + SG_ Kombi_02_alt : 62|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB + SG_ Uhrzeit_01_alt : 63|1@1+ (1,0) [0|1] "" Airbag_MQB,BMS_MQB,LEH_MQB -BO_ 1004 MEB_TSK_01: 8 XXX - SG_ TSK_State : 53|3@1+ (1,0) [0|7] "" XXX +BO_ 1716 VIN_01: 8 Gateway_MQB + SG_ VIN_01_MUX M : 0|2@1+ (1,0) [0|3] "" Airbag_MQB + SG_ KS_Geheimnis_1 m0 : 8|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KS_Geheimnis_2 m0 : 16|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KS_Geheimnis_3 m0 : 24|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ KS_Geheimnis_4 m0 : 32|8@1+ (1,0) [0|255] "" Vector__XXX + SG_ VIN_1 m0 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_2 m0 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_3 m0 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_4 m1 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_5 m1 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_6 m1 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_7 m1 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_8 m1 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_9 m1 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_10 m1 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_11 m2 : 8|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_12 m2 : 16|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_13 m2 : 24|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_14 m2 : 32|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_15 m2 : 40|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_16 m2 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB + SG_ VIN_17 m2 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB + +BO_ 316495049 SAL_01: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX -BO_ 619 MEB_Travel_Assist_01: 8 XXX - SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX - SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX - SG_ Travel_Assist_Status : 13|3@1+ (1,0) [0|3] "" XXX - SG_ Travel_Assist_Request : 19|3@1+ (1,0) [0|7] "" XXX - SG_ Travel_Assist_Available : 23|1@1+ (1,0) [0|1] "" XXX +BO_ 316495106 AAA_01: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX -BO_ 387 MEB_Camera_01: 64 XXX - SG_ NEW_SIGNAL_1 : 191|1@0+ (1,0) [0|1] "" XXX - SG_ NEW_SIGNAL_2 : 200|9@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_3 : 209|9@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_9 : 218|6@1+ (1,0) [0|63] "" XXX - SG_ NEW_SIGNAL_10 : 224|8@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_4 : 232|9@1+ (1,0) [0|255] "" XXX - SG_ NEW_SIGNAL_5 : 241|9@1+ (1,0) [0|127] "" XXX - SG_ NEW_SIGNAL_8 : 250|6@1+ (1,0) [0|63] "" XXX - SG_ Lane_Center_Offset : 256|12@1+ (0.001,-2.5) [0|255] "Unit_Meter" XXX - SG_ NEW_SIGNAL_6 : 268|12@1+ (1,0) [0|255] "" XXX +BO_ 316495165 HVL_01: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX +BO_ 380195935 IPA_02: 8 XXX +BO_ 441800001 EML_02: 8 XXX + SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX + SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX + +CM_ BO_ 184 "Motorsteuergerät"; +CM_ BO_ 192 "Motorsteuergerät"; +CM_ BO_ 317 "Lenkungssteuergerät"; +CM_ BO_ 517 "Steuergerät für Motorstart"; +CM_ BO_ 522 "Steuergerät für Fahrzeugbewegung"; +CM_ BO_ 1622 "Steuergerät für Lenkungsverriegelung"; +CM_ BO_ 316495165 "Steuergerät ICAS1"; +CM_ BO_ 441800001 "Steuergerät für Fahrzeugbewegung"; + +VAL_ 64 AB_RGS_Anst 4 "aktiv_Niveau_1" 5 "aktiv_Niveau_2" 6 "aktiv_Niveau_3" 7 "aktiv_Niveau_4" 8 "deaktiviert"; +VAL_ 64 AB_Front_Crash 0 "kein_Front_Crash" 1 "Front_Crash"; +VAL_ 64 AB_Heck_Crash 0 "kein_Heck_Crash" 1 "Heck_Crash"; +VAL_ 64 AB_SF_Crash 0 "kein_Seiten_Crash_Fahrer" 1 "Seiten_Crash_Fahrer"; +VAL_ 64 AB_SB_Crash 0 "kein_Seiten_Crash_Beifahrer" 1 "Seiten_Crash_Beifahrer"; +VAL_ 64 AB_Rollover_Crash 0 "kein_Rollover" 1 "Rollover"; +VAL_ 64 AB_Crash_Int 0 "kein_Crash" 1 "Crash_Intensitaet_1" 2 "Crash_Intensitaet_2_(nur_Stellgliedtest_MLB_B8)" 3 "Crash_Intensitaet_2_(nur_D4_C7_Colorado_NF_PAG__Crash_im_MLB_B8)" 4 "Crash_Intensitaet_3_(alt_VW/AUDI__Stellgliedtest_MLB_B8)" 5 "Crash_Intensitaet_3_(alt_PAG)" 7 "Crash_Intensitaet_3"; +VAL_ 64 AB_Lampe 0 "Aus" 1 "Ein"; +VAL_ 64 AB_Deaktiviert 0 "aktiv" 1 "deaktiviert"; +VAL_ 64 AB_VB_deaktiviert 0 "Beifahrerairbag_aktiv" 1 "Beifahrerairbag_deaktiviert"; +VAL_ 64 AB_Systemfehler 0 "kein_Fehler" 1 "Airbag_Systemfehler"; +VAL_ 64 AB_Diagnose 0 "nicht_in_Diagnose" 1 "in_Diagnose"; +VAL_ 64 AB_Stellgliedtest 0 "nicht_im_Stellgliedtest" 1 "Airbag_im_Stellgliedtest"; +VAL_ 64 AB_Erh_Auf_VB 0 "keine_Anzeige" 1 "Beifahrerairbag_deaktiviert" 2 "Beifahrerairbag_aktiviert" 3 "nicht_definiert"; +VAL_ 64 AB_Gurtwarn_VF 0 "keine_Warnung" 1 "Gurtwarnung_ausloesen"; +VAL_ 64 AB_Gurtwarn_VB 0 "keine_Warnung" 1 "Gurtwarnung_ausloesen"; +VAL_ 64 AB_Anzeige_Fussg 0 "keine_FSG_Aktion_ausgeloest" 1 "Motorhaube_offen" 2 "Systemfehler"; +VAL_ 64 AB_Texte_AKS 0 "keine_AKS_Ausloesung" 1 "AKS_ausgeloest" 2 "AKS_Systemfehler"; +VAL_ 64 AB_MKB_gueltig 0 "Multikollisionsbremsung_nicht_freigeschaltet" 1 "Multikollisionsbremsung_freigeschaltet"; +VAL_ 64 AB_MKB_Anforderung 0 "Multikollisionsbremsung_nicht_angefordert" 1 "Multikollisionsbremsung_angefordert"; +VAL_ 64 AB_Versorgungsspannung 0 "plausibel" 1 "unplausibel"; +VAL_ 64 AB_Deaktivierung_HV 0 "keine_Deaktivierung" 1 "Deaktivierung_1" 2 "Deaktivierung_2" 3 "Deaktivierung_3" 4 "Deaktivierung_4" 5 "Deaktivierung_5" 6 "Deaktivierung_6" 7 "Fehler"; +VAL_ 64 AB_EDR_Trigger 0 "No_Event" 1 "Start_Event" 2 "NonDeployment_Event" 3 "Deployment_Event"; +VAL_ 64 AB_Belegung_VF 0 "nicht_verfuegbar" 1 "Fehler" 2 "nicht_belegt" 3 "belegt"; +VAL_ 64 SC_LowSpeedCrashErkannt 0 "kein_Crash_erkannt" 1 "Crash_Frontbereich_erkannt" 2 "Crash_Heckbereich_erkannt" 3 "Crash_Front_und_Heckbereich_erkannt"; +VAL_ 64 SC_Masterzeit 127 "Init"; +VAL_ 134 LWI_Sensorstatus 0 "iO" 1 "nicht kalibriert"; +VAL_ 134 LWI_QBit_Sub_Daten 0 "LWS-Subinfo real (Lenkradwinkelinformation ADS-tauglich)" 1 "LWS-Subinfo simuliert (Lenkradwinkelinformation nicht ADS-tauglich )"; +VAL_ 134 LWI_MFL_Abschaltung 0 "inaktiv" 1 "aktiv"; +VAL_ 134 LWI_QBit_Lenkradwinkel 0 "gültiger Wert" 1 "ausserhalb der Spezifikation"; +VAL_ 134 LWI_Lenkradwinkel 8190 "Init" 8191 "Fehler"; +VAL_ 134 LWI_VZ_Lenkradwinkel 0 "positiv_links_von_der_Nullstellung" 1 "negativ"; +VAL_ 134 LWI_VZ_Lenkradw_Geschw 0 "positiv_links_von_der_Nullstellung" 1 "negativ"; +VAL_ 134 LWI_Lenkradw_Geschw 510 "Init" 511 "Fehler"; VAL_ 159 EPS_HCA_Status 0 "disabled" 1 "initializing" 2 "fault" 3 "ready" 4 "rejected" 5 "active" 8 "preempted"; -VAL_ 173 GE_Fahrstufe 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T"; -VAL_ 253 BR_Eingriffsmoment 1022 "Init" 1023 "Fehler" ; -VAL_ 253 ESP_Diagnose 0 "ESP_nicht_in_Diagnose" 1 "ESP_in_Diagnose" ; -VAL_ 253 ESC_v_Signal_Qualifier_High_Low 0 "Gueteschwelle_kleiner_1kmh" 1 "Gueteschwelle_kleiner_3kmh" 2 "Gueteschwelle_kleiner_5kmh" 3 "Gueteschwelle_kleiner_10kmh" 4 "Gueteschwelle_kleiner_20kmh" 5 "Gueteschwelle_groessergleich_20kmh" 6 "Init" 7 "Fehler" ; -VAL_ 253 ESP_Vorsteuerung 0 "keine_Vorsteuerung_aktiv" 1 "Vorsteuerung_aktiv" ; -VAL_ 253 OBD_Schlechtweg 0 "kein_Schlechtweg_erkannt" 1 "Schlechtweg_erkannt" ; -VAL_ 253 OBD_QBit_Schlechtweg 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 253 ESP_v_Signal 65533 "Unterspannung" 65534 "Init" 65535 "Fehler" ; -VAL_ 253 ASR_Tastung_passiv 0 "ASR_aktiviert" 1 "ASR_passiv_getastet_oder_Schwellen_geaendert" ; -VAL_ 253 ESP_Tastung_passiv 0 "ESP_aktiviert" 1 "ESP_passiv_getastet_oder_Schwellen_geaendert" ; -VAL_ 253 ESP_Systemstatus 0 "iO" 1 "Fehler" ; -VAL_ 253 ASR_Schalteingriff 0 "keine_Anforderung" 1 "ASR_Schaltkennfeld" 2 "Rueckschaltung" 3 "Schaltverbot" ; -VAL_ 253 ESP_QBit_v_Signal 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 253 ABS_Bremsung 0 "keine_ABS_Regelung" 1 "ABS_Regelung_aktiv" ; -VAL_ 253 ASR_Anf 0 "keine_Anforderung" 1 "ASR_Anforderung" ; -VAL_ 253 MSR_Anf 0 "keine Anfoderung" 1 "MSR-Anforderung" ; -VAL_ 253 EBV_Eingriff 0 "kein_EBV_Eingriff" 1 "EBV_Eingriff" ; -VAL_ 253 EDS_Eingriff 0 "kein_EDS_Eingriff" 1 "EDS_Eingriff" ; -VAL_ 253 ESP_Eingriff 0 "kein_ESP_Eingriff" 1 "ESP_Eingriff_aktiv" ; -VAL_ 253 ESP_ASP 0 "inaktiv" 1 "aktiv" ; -VAL_ 253 ESC_Neutralschaltung 0 "keine_Anforderung" 1 "Neutralschaltung_angefordert" ; +VAL_ 167 MO_Mom_Soll_Roh 1022 "Init"; +VAL_ 167 MO_Mom_Ist_Summe 1022 "Init"; +VAL_ 167 MO_Mom_Traegheit_Summe 1022 "Init"; +VAL_ 167 MO_Mom_Soll_gefiltert 1022 "Init"; +VAL_ 167 MO_Mom_Schub 510 "Init"; +VAL_ 167 MO_Status_Normalbetrieb_01 0 "kein_Normalbetrieb" 1 "Normalbetrieb_erreicht"; +VAL_ 167 MO_erste_Ungenauschwelle 0 "genau" 1 "Momente ungenauer >8%"; +VAL_ 167 MO_QBit_Motormomente 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 168 MO_Mom_neg_verfuegbar 510 "Init" 511 "Fehler"; +VAL_ 168 MO_Mom_Begr_stat 510 "Init"; +VAL_ 168 MO_Mom_Begr_dyn 1022 "Init"; +VAL_ 168 MO_QBit_Drehzahl_01 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 173 GE_MMom_Soll_02 1022 "keine_Anforderung_Init" 1023 "Fehler"; +VAL_ 173 GE_MMom_Vorhalt_02 1022 "Init" 1023 "Fehler"; +VAL_ 173 GE_Uefkt 1023 "Fehler"; +VAL_ 173 GE_Fahrstufe 0 "Zwischenstellung" 1 "Init" 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" 15 "Fehler"; +VAL_ 173 GE_Schaltablauf 0 "keine_Schaltung" 1 "Momentenueberschneidung" 2 "Befuellphase" 3 "Drehzahlueberfuehrung"; +VAL_ 173 GE_Uefkt_unplausibel 0 "Uefkt_plausibel" 1 "Uefkt_unplausibel"; +VAL_ 173 GE_MMom_Status_02 0 "kein_Eingriff" 1 "abs_reduzierender_Eingriff_auf_Gesamt_Antrieb_nur_schneller_Pfad" 2 "abs_erhoehender_Eingriff_auf_Gesamt_Antrieb" 3 "relativer_Eingriff_auf_Gesamt_Antrieb" 4 "relativer_Eingriff_auf_E_Maschine" 5 "abs_red_Eingr_auf_Gesamt_Antrieb_nur_Luftpfad" 6 "abs_red_Eingr_auf_Gesamt_Antrieb_Luft-_und_schnellen_Pfad" 7 "abs_Eingriff_auf_Gesamtantrieb_erhoehend_und_reduzierend"; +VAL_ 173 GE_Status_Kraftschluss 0 "offen_kein_Kraftschluss" 1 "offen_mit_Kraftschluss" 2 "schlupfend_geregelt" 3 "abgesichert_offen_kein_Kraftschl" 4 "geschlossen_mit_Mikroschlupf" 5 "geschlossen_mit_Ueberanpressung" 6 "sonstige_Fehler" 7 "fehlerhaft_geschlossen"; +VAL_ 173 GE_MMom_Status 0 "keine Anforderung" 1 "reduzierender Getriebeeingriff" 2 "erhöhender Getriebeeingriff" 3 "Įderung mit Sprung"; +VAL_ 173 GE_Freig_MMom_Vorhalt 0 "nicht_freigegeben" 1 "freigegeben"; +VAL_ 173 GE_Verbot_Ausblendung 0 "kein_Verbot" 1 "Verbot"; +VAL_ 173 GE_Zielgang 0 "Gang P/N (ausgekuppelt)" 1 "Gang 1" 2 "Gang 2" 3 "Gang 3" 4 "Gang 4" 5 "Gang 5" 6 "Gang 6" 7 "Gang 7" 8 "Gang R" 11 "Gang 8" 12 "Gang 9" 13 "Gang10" 14 "Istgang nicht definiert" 15 "Fehler"; +VAL_ 184 EM1_Freigabe_Info_WFS 0 "ungueltig" 1 "gueltig"; +VAL_ 184 EM1_Sperr_Info_WFS 0 "nicht_gesperrt" 1 "gesperrt"; +VAL_ 184 EM1_AR_aktiv 0 "Init" 1 "Ruckeldaempfer_aktiv"; +VAL_ 184 EM1_Eta_Sys 510 "Init" 511 "Fehler"; +VAL_ 184 EM1_IstStrom 2046 "Init" 2047 "Fehler"; +VAL_ 184 EM1_Fehler_ElAntriebFreilauf_Anf 0 "Init" 1 "Fehler_EM_im_Freilauf"; +VAL_ 184 EM1_Abregelung_Temperatur 0 "Init" 1 "Abregelung_Temperatur"; +VAL_ 184 EM1_AnlernenElMotor_Anf 0 "kein_Diagnose_Request" 1 "Diagnose_Request"; +VAL_ 184 EM1_Moment_HVVerbraucher 1023 "Init"; +VAL_ 184 EM1_Freigabe_Verfallsinfo_WFS 0 "Aus" 1 "Ein"; +VAL_ 184 EM1_Parken_WFS_Status 0 "Limitierung_Inaktiv" 1 "Limitierung_Aktiv" 2 "Abbruch"; +VAL_ 184 EM1_HV_betriebsbereit 0 "Init" 1 "Ready_HV"; +VAL_ 190 Engine_Status 1 "Ready" 2 "Online"; +VAL_ 253 BR_Eingriffsmoment 1022 "Init" 1023 "Fehler"; +VAL_ 253 ESP_Diagnose 0 "ESP_nicht_in_Diagnose" 1 "ESP_in_Diagnose"; +VAL_ 253 ESC_v_Signal_Qualifier_High_Low 0 "Gueteschwelle_kleiner_1kmh" 1 "Gueteschwelle_kleiner_3kmh" 2 "Gueteschwelle_kleiner_5kmh" 3 "Gueteschwelle_kleiner_10kmh" 4 "Gueteschwelle_kleiner_20kmh" 5 "Gueteschwelle_groessergleich_20kmh" 6 "Init" 7 "Fehler"; +VAL_ 253 ESP_Vorsteuerung 0 "keine_Vorsteuerung_aktiv" 1 "Vorsteuerung_aktiv"; +VAL_ 253 OBD_Schlechtweg 0 "kein_Schlechtweg_erkannt" 1 "Schlechtweg_erkannt"; +VAL_ 253 OBD_QBit_Schlechtweg 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 253 ESP_v_Signal 65533 "Unterspannung" 65534 "Init" 65535 "Fehler"; +VAL_ 253 ASR_Tastung_passiv 0 "ASR_aktiviert" 1 "ASR_passiv_getastet_oder_Schwellen_geaendert"; +VAL_ 253 ESP_Tastung_passiv 0 "ESP_aktiviert" 1 "ESP_passiv_getastet_oder_Schwellen_geaendert"; +VAL_ 253 ESP_Systemstatus 0 "iO" 1 "Fehler"; +VAL_ 253 ASR_Schalteingriff 0 "keine_Anforderung" 1 "ASR_Schaltkennfeld" 2 "Rueckschaltung" 3 "Schaltverbot"; +VAL_ 253 ESP_QBit_v_Signal 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 253 ABS_Bremsung 0 "keine_ABS_Regelung" 1 "ABS_Regelung_aktiv"; +VAL_ 253 ASR_Anf 0 "keine_Anforderung" 1 "ASR_Anforderung"; +VAL_ 253 MSR_Anf 0 "keine Anfoderung" 1 "MSR-Anforderung"; +VAL_ 253 EBV_Eingriff 0 "kein_EBV_Eingriff" 1 "EBV_Eingriff"; +VAL_ 253 EDS_Eingriff 0 "kein_EDS_Eingriff" 1 "EDS_Eingriff"; +VAL_ 253 ESP_Eingriff 0 "kein_ESP_Eingriff" 1 "ESP_Eingriff_aktiv"; +VAL_ 253 ESP_ASP 0 "inaktiv" 1 "aktiv"; +VAL_ 253 ESC_Neutralschaltung 0 "keine_Anforderung" 1 "Neutralschaltung_angefordert"; +VAL_ 267 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; +VAL_ 278 ESP_QBit_Wegimpuls_VL 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 278 ESP_QBit_Wegimpuls_VR 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 278 ESP_QBit_Wegimpuls_HL 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 278 ESP_QBit_Wegimpuls_HR 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 278 ESP_Wegimpuls_VL 1021 "Init" 1022 "Unterspannung" 1023 "Fehler"; +VAL_ 278 ESP_Wegimpuls_VR 1021 "Init" 1022 "Unterspannung" 1023 "Fehler"; +VAL_ 278 ESP_Wegimpuls_HL 1021 "Init" 1022 "Unterspannung" 1023 "Fehler"; +VAL_ 278 ESP_Wegimpuls_HR 1021 "Init" 1022 "Unterspannung" 1023 "Fehler"; +VAL_ 278 ESP_VL_Fahrtrichtung 0 "Vorwaerts" 1 "Rueckwaerts" 2 "Init" 3 "ungueltig_oder_nicht_verbaut"; +VAL_ 278 ESP_VR_Fahrtrichtung 0 "Vorwaerts" 1 "Rueckwaerts" 2 "Init" 3 "ungueltig_oder_nicht_verbaut"; +VAL_ 278 ESP_HL_Fahrtrichtung 0 "Vorwaerts" 1 "Rueckwaerts" 2 "Init" 3 "ungueltig_oder_nicht_verbaut"; +VAL_ 278 ESP_HR_Fahrtrichtung 0 "Vorwaerts" 1 "Rueckwaerts" 2 "Init" 3 "ungueltig_oder_nicht_verbaut"; +VAL_ 299 GRA_Hauptschalter 0 "Hauptschalter_aus__Taster_nicht_betaetigt" 1 "Hauptschalter_ein__Taster_betaetigt"; +VAL_ 299 GRA_Abbrechen 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Typ_Hauptschalter 0 "gerasteter_Lenkstockschalter" 1 "getasteter_Lenkstockschalter"; +VAL_ 299 GRA_Limiter 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Tip_Setzen 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Tip_Hoch 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Tip_Runter 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Tip_Wiederaufnahme 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 299 GRA_Verstellung_Zeitluecke 0 "Taste_nicht_betaetigt" 1 "Dist_minus_1" 2 "Dist_plus_1" 3 "Dist_Toggle"; +VAL_ 299 GRA_Codierung 0 "kein_Hebel" 1 "GRA_Hebel" 2 "ACC_Hebel" 3 "Limiter_Only"; +VAL_ 299 GRA_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 299 GRA_LIM_Taste_verfuegbar 0 "Limiter_Taste_nicht_vorhanden" 1 "Limiter_Taste_vorhanden"; +VAL_ 299 GRA_Tip_Stufe_2 0 "Tip_Stufe_1__keine_Betaetigung" 1 "Tip_Stufe_2"; +VAL_ 299 GRA_TravelAssist 0 "nicht_betaetigt" 1 "betaetigt"; VAL_ 317 LatCon_HCA_Status 0 "disabled" 1 "initializing" 2 "ready" 3 "fault" 4 "active" 5 "preempted" 6 "fault" 7 "rejected"; +VAL_ 319 PreCrash_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 319 PreCrash_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 319 PreCrash_Schiebedach_schliessen 0 "keine_Schliessung" 1 "Schliessung_angefordert"; +VAL_ 319 PreCrash_Fenster_schliessen 0 "keine_Schliessung" 1 "Schliessung_angefordert"; +VAL_ 319 PreCrash_Blinken 0 "keine_Blinkanforderung" 1 "Warnblinken" 2 "RECAS_Blinken" 3 "Notbremsblinken"; +VAL_ 319 SC_PreSense_FCWP 0 "Warnung_gilt_fuer_Objekte" 1 "Warnung_gitl_fuer_Fussgaenger"; +VAL_ 319 PreCrash_Tueren_Verriegeln 0 "keine_Anforderung" 1 "Tueren_Verriegeln"; +VAL_ 319 PreCrash_Anforderung_AFR 0 "keine_Anforderung" 1 "linke_Seite" 2 "rechte_Seite" 3 "Vorderachse" 4 "Hinterachse" 5 "Vorwarnung" 7 "Init"; +VAL_ 319 SC_PreCrash_LED 0 "keine_Anzeige" 1 "Stufe_1_glimmen" 2 "Stufe_2_leuchten" 3 "Stufe_3_blinken"; +VAL_ 319 PreCrash_FS_Pneumatik_ansteuern 0 "keine_Anforderung" 1 "Pneumatik_ansteuern"; +VAL_ 319 PreCrash_BFS_Pneumatik_ansteuern 0 "keine_Anforderung" 1 "Pneumatik_ansteuern"; +VAL_ 319 PreCrash_Fo_Pneumatik_ansteuern 0 "keine_Anforderung" 1 "Pneumatik_ansteuern"; +VAL_ 319 PreCrash_FS_Sitzlehne_verfahren 0 "keine_Anforderung" 1 "Sitzlehne_in_pos_x-Richtung_verfahren(vor)" 2 "Sitzlehne_in_neg_x-Richtung_verfahren(zurueck)" 3 "Sitzlehnenkopf_in_pos_x-Richtung_verfahren(vor)" 4 "Sitzlehnenkopf_in_neg_x-Richtung_verfahren(zurueck)" 6 "Lehnenverstellung_ansteuern" 7 "Lehnenkopfverstellung_ansteuern"; +VAL_ 319 PreCrash_BFS_Sitzlehne_verfahren 0 "keine_Anforderung" 1 "Sitzlehne_in_pos_x-Richtung_verfahren(vor)" 2 "Sitzlehne_in_neg_x-Richtung_verfahren(zurueck)" 3 "Sitzlehnenkopf_in_pos_x-Richtung_verfahren(vor)" 4 "Sitzlehnenkopf_in_neg_x-Richtung_verfahren(zurueck)" 6 "Lehnenverstellung_ansteuern" 7 "Lehnenkopfverstellung_ansteuern"; +VAL_ 319 PreCrash_Fo_Sitzlehne_verfahren 0 "keine_Anforderung" 1 "Sitzlehne_in_pos_x-Richtung_verfahren(vor)" 2 "Sitzlehne_in_neg_x-Richtung_verfahren(zurueck)" 3 "Sitzlehnenkopf_in_pos_x-Richtung_verfahren(vor)" 4 "Sitzlehnenkopf_in_neg_x-Richtung_verfahren(zurueck)"; +VAL_ 319 PreCrash_FS_KSV_verfahren 0 "keine_Anforderung" 1 "in_pos_x-Richtung_verfahren" 2 "in_neg_x-Richung_verfahren" 3 "in_pos_z-Richtung_verfahren" 4 "in_neg_z-Richtung_verfahren" 5 "in_pos_x-Richtung_und_neg_z-Richtung_verfahren" 6 "in_pos_x_Richtung_und_pos_z-Richtung_verfahren" 7 "in_neg_x-Richtung_und_neg_z-Richtung_verfahren" 8 "in_neg_x-Richtung_und_pos_z-Richtung_verfahren" 9 "Kopfstuetze_ansteuern"; +VAL_ 319 PreCrash_BFS_KSV_verfahren 0 "keine_Anforderung" 1 "in_pos_x-Richtung_verfahren" 2 "in_neg_x-Richung_verfahren" 3 "in_pos_z-Richtung_verfahren" 4 "in_neg_z-Richtung_verfahren" 5 "in_pos_x-Richtung_und_neg_z-Richtung_verfahren" 6 "in_pos_x_Richtung_und_pos_z-Richtung_verfahren" 7 "in_neg_x-Richtung_und_neg_z-Richtung_verfahren" 8 "in_neg_x-Richtung_und_pos_z-Richtung_verfahren" 9 "Kopfstuetze_ansteuern"; +VAL_ 319 PreCrash_Fo_KSV_verfahren 0 "keine_Anforderung" 1 "in_pos_x-Richtung_verfahren" 2 "in_neg_x-Richung_verfahren" 3 "in_pos_z-Richtung_verfahren" 4 "in_neg_z-Richtung_verfahren" 5 "in_pos_x-Richtung_und_neg_z-Richtung_verfahren" 6 "in_pos_x_Richtung_und_pos_z-Richtung_verfahren" 7 "in_neg_x-Richtung_und_neg_z-Richtung_verfahren" 8 "in_neg_x-Richtung_und_pos_z-Richtung_verfahren"; +VAL_ 319 SC_PreCrash_Warnung 0 "keine_Anzeige" 1 "latente_Vorwarnung" 2 "Vorwarnung" 3 "Akutwarnung" 4 "Eingriff" 5 "Fahreruebernahmeaufforderung" 6 "Abbiegewarnung" 7 "Basiseingriff" 8 "Heckeingriff"; +VAL_ 319 SC_PreCrash_Texte 0 "keine_Anzeige" 1 "Systemstoerung" 2 "keine_Sensorsicht" 3 "Demomodus" 4 "System_aus" 5 "Anhaengerbetrieb" 6 "ESC_aus" 7 "zurzeit_eingeschraenkt" 8 "zurzeit_eingeschraenkt_ESP_Aus" 9 "Initialisierung"; VAL_ 333 ACC_limitierte_Anfahrdyn 0 "keine_Limitierung" 1 "Limitierung_Anfahrdynamik_angefordert"; VAL_ 333 ACC_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert"; VAL_ 333 ACC_StartStopp_Info 0 "Motorlauf_langfristig_nicht_notwendig_Stoppfreigabe" 1 "Motoranlauf_nicht_zwingend_notwendig_Stoppverbot_keine_Startanforderung" 2 "Motoranlauf_zwingend_notwendig_Startanforderung" 3 "Systemfehler"; @@ -1754,26 +2236,56 @@ VAL_ 333 ACC_Minimale_Bremsung 0 "Anforderung_Minimale_Bremsung_nicht_aktiv" 1 " VAL_ 333 ACC_Anhalteweg 2046 "Neutralwert" 2047 "Fehler"; VAL_ 333 ACC_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe"; VAL_ 333 Accel_Boost 3 "Driving" 0 "Stop" 2 "Driving" 1 "Driving"; -VAL_ 420 EA_Parken_beibehalten_HMS 0 "Parken_nicht_beibehalten" 1 "Parken_beibehalten" 2 "Init" 3 "Fehler" ; -VAL_ 420 EA_Warnruckprofil 0 "keine_Ruckanforderung" 1 "Profil_1" 2 "Profil_2" 3 "Profil_3" 4 "Profil_4" 5 "Profil_5" 6 "Profil_6" 7 "Profil_7" ; -VAL_ 420 EA_eCall_Anf 0 "Keine_Anforderung" 1 "Ausloesen_eCall" ; -VAL_ 420 EA_Funktionsstatus 0 "EA_INIT" 1 "EA_OFF" 2 "EA_STANDBY" 3 "EA_PHASE0_AKTIV" 4 "EA_PHASE1_AKTIV" 5 "EA_PHASE2_AKTIV" 6 "EA_PHASE3_AKTIV" 7 "EA_REVERSIBLER_FEHLER" 8 "EA_IRREVERSIBLER_FEHLER" ; -VAL_ 420 EA_Gurtstraffer_Anf 0 "Keine_Anforderung" 1 "Haptik_1" 2 "Haptik_2" 3 "Haptik_3" ; -VAL_ 420 EA_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" 6 "Parken_mit_P" ; -VAL_ 420 EA_Sollbeschleunigung 2046 "Neutralwert" 2047 "Fehler" ; -VAL_ 496 EA_Texte 0 "keine_Anzeige" 1 "Nothalteassistent_fehlende_Fahreraktivitaet" 2 "Nothalteassistent_aktiv_Fahrzeugfuehrung_uebernehmen" 3 "Nothalteassistent_automatischer_Nothalt_wird_durchgefuehrt" 4 "Nothalteassistent_automatischer_Nothalt_durchgefuehrt" 5 "Nothalteassistent_Verbindung_zum_Notruf_wird_aufgebaut" 6 "Nothalteassistent_deaktiviert" 7 "Nothalteassistent_Eingriff_abgebrochen" 8 "Nothalteassistent_fehlende_Fahreraktivitaet_2" 9 "Sekundenschlaf_erkannt" 10 "LaneAssist_Lenkung_uebernehmen" 11 "ACA_Fahrzeugfuehrung_uebernehmen" 12 "EA_Fahr_Standstreifenwechsel" 14 "Nothalteassistent_nicht_verfuegbar_reversibel" 15 "Nothalteassistent_Stoerung_irreversibel" ; -VAL_ 496 ACF_Lampe_Hands_Off 0 "keine_Anzeige" 1 "Hands_Off_erkannt" ; -VAL_ 496 EA_Infotainment_Anf 0 "Init" 1 "Keine_Absenkung" 2 "Absenkung" 3 "Mute" ; -VAL_ 496 EA_Tueren_Anf 0 "Keine_Anforderung" 1 "Tueren_entriegeln" ; -VAL_ 496 EA_Innenraumlicht_Anf 0 "Innenraumbeleuchtung_ausschalten" 1 "Innenraumbeleuchtung_einschalten" ; -VAL_ 496 zFAS_Warnblinken 0 "Aus" 1 "Statisch" 2 "Taster" 3 "Statisch_ohne_WBT" ; -VAL_ 496 STP_Primaeranz 0 "keine_Anzeige" 1 "Verfuegbar" 2 "Aktiv" 3 "Uebernahme" 4 "Aktiv_Warnung" 5 "Nicht_Verfuegbar" ; -VAL_ 496 EA_Bremslichtblinken 0 "kein_Blinken" 1 "Anforderung_Bremslichtblinken" ; -VAL_ 496 EA_Blinken 0 "Kein_Blinken" 1 "Wechselblinken_links" 2 "Wechselblinken_rechts" 3 "Warnblinken" 4 "Warnblinken_Taster" ; -VAL_ 591 Distance_Status 0 "Valid" 3 "Invalid"; +VAL_ 339 MO_HVEM_Eskalation 0 "keine_Eskalation_HVEM" 1 "Eskalation_HVEM"; +VAL_ 339 MO_ErwGrenzen_Anf 0 "normal" 1 "erweitert"; +VAL_ 339 MO_Fehler_Notentladung_Anf 0 "Init"; +VAL_ 339 MO_HVEM_MaxLeistung 510 "Init"; +VAL_ 339 MO_HVK_EmIstzustand 0 "HvOff" 1 "HvStbyReq" 2 "HvStbyOk" 3 "HvBattOnReq" 4 "HvBattOnOk" 10 "HvOnIdle" 18 "HvOnDrvReq" 19 "HvOnDrvOk" 20 "HvOnDrvRdy" 28 "HvStepUpReq" 29 "HvStepUpOk" 30 "HvStepUp" 38 "HvStepDownReq" 39 "HvStepDownOk" 40 "HvStepDown" 46 "HvAcChPreReq" 47 "HvAcChPreOk" 48 "HvAcChReq" 49 "HvAcChOk" 50 "HvAcCh" 56 "HvDcChPreReq" 57 "HvDcChPreOk" 58 "HvDcChReq" 59 "HvDcChOk" 60 "HvDcCh" 67 "HvChOffReq" 68 "HvChOffOk" 69 "HvOnIdleReq" 70 "HvOnIdleOk" 96 "HvCpntOffReq" 97 "HvCpntOffOk" 98 "HvBattOffReq" 99 "HvBattOffOk" 109 "HvDcDcFailOffReq" 110 "HvDcDcFail" 119 "HvElmOffReq" 120 "HvElmOff" 126 "HvFailCpntOffReq" 127 "HvFailCpntOffOk" 128 "HvFailBattOffReq" 129 "HvFailBattOffOk" 130 "HvFailBattOff" 138 "HvFailUCtlReq" 139 "HvFailUCtlOk" 140 "HvFailUCtl" 150 "HvEmgcyOff" 255 "Init"; +VAL_ 339 MO_HVK_AntriebFehlerstatus 0 "Komponente_IO" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 339 MO_MVK_Bordnetz_Anf 0 "keine_Anforderung" 1 "Bordnetzaktivitaet_gefordert"; +VAL_ 339 MO_HVK_AntriebZustand 0 "Antrieb_AUS" 1 "Antrieb_Startphase" 2 "E_Fahren" 3 "Hybrid_Fahren" 7 "Init"; +VAL_ 339 MO_HVK_EmFehlerstatus 0 "Komponente_IO" 1 "Eingeschr_KompFkt_Teilbetrieb" 3 "Eingeschr_KompFkt_Interlock" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 339 MO_MVK_AntriebFehlerstatus 0 "Komponente_IO" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 339 MO_MVK_AntriebZustand 0 "Antrieb_AUS" 1 "Antrieb_Startphase" 2 "FreilaufMotorAus" 7 "Init"; +VAL_ 339 MO_MVK_EmFehlerstatus 0 "Komponente_IO" 1 "Eingeschr_KompFkt_Teilbetrieb" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 339 MO_MVK_EmIstzustand 0 "MvOff" 1 "MvStbyReq" 2 "MvStbyOk" 3 "MvBattOnReq" 4 "MvBattOnOk" 10 "MvOnIdle" 18 "MvOnDrvReq" 19 "MvOnDrvOk" 20 "MvOnDrv" 28 "MvStepUpReq" 29 "MvStepUpOk" 30 "MvStepUp" 38 "MvStepDownReq" 39 "MvStepDownOk" 40 "MvStepDown" 96 "MvCpntOffReq" 97 "MvCpntOffOk" 98 "MvBattOffReq" 99 "MvBattOffOk" 109 "MvDcDcFailOffReq" 110 "MvDcDcFail" 119 "MvElmFailOffReq" 120 "MvElmFail" 126 "MvFailCpntOffReq" 127 "MvFailCpntOffOk" 128 "MvFailBattOffReq" 129 "MvFailBattOffOk" 130 "MvFailBattOff" 138 "MvFailUCtlReq" 139 "MvFailUCtlOk" 140 "MvFailUCtl" 150 "MvEmgcyOff" 255 "Init"; +VAL_ 420 EA_Parken_beibehalten_HMS 0 "Parken_nicht_beibehalten" 1 "Parken_beibehalten" 2 "Init" 3 "Fehler"; +VAL_ 420 EA_Warnruckprofil 0 "keine_Ruckanforderung" 1 "Profil_1" 2 "Profil_2" 3 "Profil_3" 4 "Profil_4" 5 "Profil_5" 6 "Profil_6" 7 "Profil_7"; +VAL_ 420 EA_eCall_Anf 0 "Keine_Anforderung" 1 "Ausloesen_eCall"; +VAL_ 420 EA_Funktionsstatus 0 "EA_INIT" 1 "EA_OFF" 2 "EA_STANDBY" 3 "EA_PHASE0_AKTIV" 4 "EA_PHASE1_AKTIV" 5 "EA_PHASE2_AKTIV" 6 "EA_PHASE3_AKTIV" 7 "EA_REVERSIBLER_FEHLER" 8 "EA_IRREVERSIBLER_FEHLER"; +VAL_ 420 EA_Gurtstraffer_Anf 0 "Keine_Anforderung" 1 "Haptik_1" 2 "Haptik_2" 3 "Haptik_3"; +VAL_ 420 EA_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" 6 "Parken_mit_P"; +VAL_ 420 EA_Sollbeschleunigung 2046 "Neutralwert" 2047 "Fehler"; +VAL_ 496 EA_Texte 0 "keine_Anzeige" 1 "Nothalteassistent_fehlende_Fahreraktivitaet" 2 "Nothalteassistent_aktiv_Fahrzeugfuehrung_uebernehmen" 3 "Nothalteassistent_automatischer_Nothalt_wird_durchgefuehrt" 4 "Nothalteassistent_automatischer_Nothalt_durchgefuehrt" 5 "Nothalteassistent_Verbindung_zum_Notruf_wird_aufgebaut" 6 "Nothalteassistent_deaktiviert" 7 "Nothalteassistent_Eingriff_abgebrochen" 8 "Nothalteassistent_fehlende_Fahreraktivitaet_2" 9 "Sekundenschlaf_erkannt" 10 "LaneAssist_Lenkung_uebernehmen" 11 "ACA_Fahrzeugfuehrung_uebernehmen" 12 "EA_Fahr_Standstreifenwechsel" 14 "Nothalteassistent_nicht_verfuegbar_reversibel" 15 "Nothalteassistent_Stoerung_irreversibel"; +VAL_ 496 ACF_Lampe_Hands_Off 0 "keine_Anzeige" 1 "Hands_Off_erkannt"; +VAL_ 496 EA_Infotainment_Anf 0 "Init" 1 "Keine_Absenkung" 2 "Absenkung" 3 "Mute"; +VAL_ 496 EA_Tueren_Anf 0 "Keine_Anforderung" 1 "Tueren_entriegeln"; +VAL_ 496 EA_Innenraumlicht_Anf 0 "Innenraumbeleuchtung_ausschalten" 1 "Innenraumbeleuchtung_einschalten"; +VAL_ 496 zFAS_Warnblinken 0 "Aus" 1 "Statisch" 2 "Taster" 3 "Statisch_ohne_WBT"; +VAL_ 496 STP_Primaeranz 0 "keine_Anzeige" 1 "Verfuegbar" 2 "Aktiv" 3 "Uebernahme" 4 "Aktiv_Warnung" 5 "Nicht_Verfuegbar"; +VAL_ 496 EA_Bremslichtblinken 0 "kein_Blinken" 1 "Anforderung_Bremslichtblinken"; +VAL_ 496 EA_Blinken 0 "Kein_Blinken" 1 "Wechselblinken_links" 2 "Wechselblinken_rechts" 3 "Warnblinken" 4 "Warnblinken_Taster"; VAL_ 619 Travel_Assist_Status 4 "enabled" 0 "disabled" 2 "ready" 3 "pre_ready"; VAL_ 619 Travel_Assist_Request 4 "enable" 3 "disable" 0 "no_request" 1 "error"; VAL_ 619 Travel_Assist_Available 0 "not_available" 1 "available"; +VAL_ 706 MO_Anzeige_StSt_Text 0 "keine_Anzeige" 1 "Systemfehler" 2 "Motor_manuell_starten" 3 "Rueckmeldung_durch_Fahrstufe_einlegen" 4 "Zuendungsabschaltwarnung_Timerstart" 5 "Zum_Motorstart_Bremse_treten" 6 "StSt_Aktivierung_nicht_moeglich_auf_Grund_Fahrprogramm"; +VAL_ 706 MO_Anzeige_StSt_Symbol 0 "keine_Anzeige" 1 "StSt_aktiv" 2 "Motorlauf_noetig" 3 "Fahrer_temporaer_abwesend" 4 "Fahrer_vielleicht_anwesend"; +VAL_ 706 MO_ADR_Status 0 "nicht_aktiv" 1 "ADR_angefordert" 2 "ADR_aktiv" 3 "ADR_Fehler"; +VAL_ 706 MO_AGA_Sound_Texte 0 "keine_Anzeige" 1 "Sound_off" 2 "Sound_on"; +VAL_ 706 MO_Anzeige_FMAus_Text 0 "keine_Anzeige" 1 "FMAus_Systemfehler"; +VAL_ 706 MO_Fehler_MSpG 0 "i.O." 1 "Gebl䳥 defekt oder Motorraumtemp. zu hoch"; +VAL_ 706 PEA_Texte 0 "Keine_Anzeige" 1 "PEA_Fahreruebernahme_noetig" 2 "PEA_Reku_nicht_verfuegbar"; +VAL_ 706 TSK_Ueberstimmt_vMax_FahrerInfo 0 "nicht_ueberstimmbar" 1 "ueberstimmbar" 2 "ueberstimmt"; +VAL_ 706 MO_Avus_Motorschutz 0 "keine Warnung" 1 "Drehzahlwarnung Stufe 1" 2 "Drehzahlwarnung Stufe 2" 3 "Drehzahlwarnung Stufe 3"; +VAL_ 706 MO_Rekuperationsstufe 0 "keine_Anzeige" 1 "Rekuperationsstufe_1" 2 "Rekuperationsstufe_2" 3 "Rekuperationsstufe_3" 4 "Rekuperationsstufe_4" 5 "Rekuperationsstufe_5" 6 "Rekuperationsstufe_auto" 7 "Init"; +VAL_ 706 TSK_Einheit_vMax_FahrerInfo 0 "km_h" 1 "mph"; +VAL_ 706 TSK_Status_vMax_FahrerInfo 0 "keine_Anzeige" 1 "Anzeige_im_Fahrzeugstatus" 2 "PopUp_ohne_Gong__Eintrag_FhzStat" 3 "PopUp_mit_Gong__Eintrag_FhzStat"; +VAL_ 706 MO_Red_Fahrleistung 0 "keine_Anzeige" 1 "kleine_Red" 2 "mittlere_Red_temp" 3 "mittlere_Red" 4 "grosse_Red_temp" 5 "grosse_Red"; +VAL_ 706 MO_Anz_Kuehlerluefter 0 "Kein_KuehlerluefterNachlauf" 1 "Text_Luefternachlauf_aktiv" 2 "Text_Luefternachlauf_DPF_aktiv" 3 "Platzhalter_weitere_Signale" 4 "Platzhalter_weitere_Signale" 5 "Platzhalter_weitere_Signale" 6 "Platzhalter_weitere_Signale" 7 "Platzhalter_weitere_Signale"; +VAL_ 706 MO_im_Leerlauf 0 "nicht_im_Leerlauf" 1 "im_Leerlauf"; +VAL_ 706 WIV_Enable_Oeldr_Motor 0 "Oeldruckauswertung_im_Kombi" 1 "Oeldruckauswertung_im_MSG"; +VAL_ 706 MO_OelMessung_Dauer 15 "keine_Messung_aktiv"; +VAL_ 706 TSK_vMax_FahrerInfo 0 "Init___kein_Wert"; VAL_ 768 ACC_Tempolimit 0 "keine_Anzeige" 1 "5_zulHoechstgeschw" 2 "7_zulHoechstgeschw" 3 "10_zulHoechstgeschw" 4 "15_zulHoechstgeschw" 5 "20_zulHoechstgeschw" 6 "25_zulHoechstgeschw" 7 "30_zulHoechstgeschw" 8 "35_zulHoechstgeschw" 9 "40_zulHoechstgeschw" 10 "45_zulHoechstgeschw" 11 "50_zulHoechstgeschw" 12 "55_zulHoechstgeschw" 13 "60_zulHoechstgeschw" 14 "65_zulHoechstgeschw" 15 "70_zulHoechstgeschw" 16 "75_zulHoechstgeschw" 17 "80_zulHoechstgeschw" 18 "85_zulHoechstgeschw" 19 "90_zulHoechstgeschw" 20 "95_zulHoechstgeschw" 21 "100_zulHoechstgeschw" 22 "110_zulHoechstgeschw" 23 "120_zulHoechstgeschw" 24 "130_zulHoechstgeschw" 25 "140_zulHoechstgeschw" 26 "150_zulHoechstgeschw" 27 "160_zulHoechstgeschw" 28 "200_zulHoechstgeschw" 30 "250_zulHoechstgeschw" 31 "Ende_zulHoechstgeschw"; VAL_ 768 ACC_Wunschgeschw_Farbe 0 "Grundfarbe" 1 "Farbe_1"; VAL_ 768 ACC_Warnung_Verkehrszeichen_1 0 "keine_Warnung_Initialwert" 1 "Warnung"; @@ -1796,8 +2308,6 @@ VAL_ 768 STA_Primaeranz 0 "keine_Anzeige" 1 "STA_standby" 2 "STA_aktiv" 3 "STA_W VAL_ 768 Heartbeat 1 "ACC_Init_Low" 420 "ACC_Init_High" 221 "ACC_Available_Low" 360 "ACC_Available_High"; VAL_ 768 ACC_Status_ACC 0 "ACC_OFF_Hauptschalter_aus" 1 "ACC_INIT" 2 "ACC_STANDBY" 3 "ACC_AKTIV_regelt" 4 "ACC_OVERRIDE" 5 "ACC_Abschaltreaktion" 6 "reversibler_Fehler_im_ACC_System" 7 "irreversibler_Fehler_im_ACC_System"; VAL_ 768 Lead_Type_Detected 1 "Lead_Detected" 0 "No_Lead_Detected"; -VAL_ 768 ACC_Driving_Type 3 "Following_Lead" 0 "None" 4 "PACC_Regulating_Speed" 8 "PACC_Regulating_Speed"; -VAL_ 768 Unknown_03 0 "None" 106 "State_01" 208 "State_02"; VAL_ 768 Lead_Type 5 "Bicycle" 3 "Car" 0 "None" 2 "Truck" 4 "Motorcycle"; VAL_ 768 ACC_Events 3 "Starting_Available" 0 "None" 5 "Speed_Limit_Camera" 9 "Street_Type" 4 "Speed_Limit_in_Nav"; VAL_ 768 Zeitluecke_1 0 "keine Anzeige"; @@ -1805,66 +2315,1046 @@ VAL_ 768 Zeitluecke_2 0 "keine Anzeige" 32 "Minimum"; VAL_ 768 Zeitluecke_3 0 "keine Anzeige"; VAL_ 768 Zeitluecke_4 0 "keine Anzeige" 40 "Minimum"; VAL_ 768 Zeitluecke_5 0 "keine Anzeige"; -VAL_ 768 ACC_Zeitluecke_Farbe 0 "white" 1 "yellow"; -VAL_ 267 TSK_Status 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; -VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt" ; +VAL_ 795 ESP_Lampe 0 "Aus" 1 "Ein"; +VAL_ 795 ABS_Lampe 0 "Aus" 1 "Ein"; +VAL_ 795 BK_Lampe_02 0 "aus" 1 "ein_statisch" 3 "Warnung"; +VAL_ 795 TC_Lampe 0 "Aus" 1 "Ein"; +VAL_ 795 ESP_m_Raddrehz 32765 "Unterspannung" 32766 "Init" 32767 "Fehler"; +VAL_ 795 ESP_Textanzeigen_03 0 "kein_Text" 1 "ESP_Stoerung" 2 "ABS_Stoerung" 3 "ESP_ABS_Stoerung" 4 "Werkstatt_Bremse" 5 "ASR_Stoerung" 6 "ESP_switched_off" 7 "ASR_off" 8 "ESP_ASR_on" 10 "keine_Bremskraftverstaerkung" 11 "ASR_aktiviert" 12 "ABS_ASR_Stoerung" 15 "ESP_offroad" 17 "ESP_sport" 18 "ESP_Zwangsaktivierung" 19 "ESP_Taster_Info" 20 "TC_aktiv" 21 "reserviert_fuer_Verlwarn" 22 "TC_switched_off" 23 "Verlwarn_akt_Rollsicher_inakt" 24 "ESP_SuperSport" 25 "ESP_Offroad_nicht_verfuegbar"; +VAL_ 795 ESP_Meldungen 0 "keine_Anzeige" 1 "Autohold_Hinweis_1" 2 "Stoerung_Autohold" 3 "Stoerung_Hillholder" 4 "Uebernehmen" 5 "Autohold_aus" 6 "Autohold_Hinweis_2"; +VAL_ 795 ESP_Fehlerstatus_Wegimp 0 "Wegimpulse_iO" 1 "Fehler"; +VAL_ 795 ESP_Wegimp_Ueberlauf 0 "Reset_und_kein_Ueberlauf" 1 "mindestens_1x_Ueberlauf"; +VAL_ 795 ESP_QBit_Wegimp_VA 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 795 ESP_HDC_Geschw_Farbe 0 "Standard_Farbe" 1 "abweichende_Farbe"; +VAL_ 795 ESP_Off_Lampe 0 "Lampe_aus" 1 "Lampe_ein"; +VAL_ 795 ESP_HDC_Regelgeschw 0 "nicht_verbaut" 125 "HDC_Standby" 126 "Init" 127 "Fehler"; +VAL_ 795 ESP_BKV_Warnung 0 "keine_Anzeige" 1 "keine_Bremskraftverstaerkung"; +VAL_ 817 MFL_Lokalaktiv 0 "war_nicht_lokal_aktiv" 1 "war_lokal_aktiv"; +VAL_ 817 MFL_M_Taste 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 817 MFL_Paddle_Verbau 0 "verbaut" 1 "nicht_verbaut"; +VAL_ 817 MFL_Tastencode_1 0 "Key_Released__No_Key" 1 "Context_Menu" 2 "Menu_Up__Next_Screen" 3 "Menu_Down__Previous_Screen" 4 "Up" 5 "Down" 6 "Up__Down_ThumbWheel" 7 "OK__ThumbWheel_Button" 8 "Cancel__Escape" 9 "Main_Menu" 10 "Side_Menu_left" 11 "Side_Menu_right" 12 "FAS_Menu" 13 "Left__Right_ThumbWheel" 14 "FAS_Menu_ThumbWheel" 16 "Volume_Up" 17 "Volume_Down" 18 "Volume_Up__Down_ThumbWheel" 19 "Volume_ThumbWheel_Button" 20 "Audio_Source" 21 "Arrow_A_Up__Right" 22 "Arrow_A_Down__Left" 23 "Arrow_B_Up__Right" 24 "Arrow_B_Down__Left" 25 "PTT__PushToTalk" 26 "PTT_Cancel" 27 "Route_Info" 28 "Hook" 29 "Hang_Up" 30 "Off_Hook" 31 "Light_On__Off" 32 "Mute" 33 "Joker1" 34 "Joker2" 35 "View" 36 "Arrow_A_Up__Down_ThumbWheel" 37 "Lenkradheizung" 38 "Rekuperation" 39 "Tube_Toggle" 40 "DRS_Drag_Reduction_System" 41 "Stopwatch_Start_Stop" 42 "Stopwatch_Nextlap" 100 "MAP" 101 "MAP_Boost" 102 "Turn_signal_left" 103 "Turn_signal_right" 104 "Turn_signal_off" 105 "Flashlight" 106 "Highbeam" 107 "Washer_button" 108 "Wiper_button_left" 109 "Wiper_button_right" 110 "Wiper_button_cancel" 111 "Exhaust_Sound" 112 "Drive_Select_button" 113 "Sport_button" 114 "ESP_Drift_Selection_ThumbWheel" 115 "PTT_special_vehicle" 116 "TravelAssist" 117 "Launch_Control" 118 "Drift_Mode_Button_Increase" 119 "Drift_Mode_Button_Decrease" 120 "Drift_Mode_Button_Select" 121 "Drive_Mode_Button_Increase" 122 "Drive_Mode_Button_Decrease" 123 "Drive_Mode_Button_Select" 124 "E_Boost_Button_Increase" 125 "E_Boost_Button_Decrease" 126 "E_Boost_Button_Select" 127 "PerformanceHybridButton_Increase" 128 "PerformanceHybridButton_Decrease" 129 "EV_Mode_Button" 130 "HUD_Button" 131 "PASM_Wheel" 132 "PASM_Button" 133 "PTV_Wheel" 134 "PTV_Button" 135 "TC_ESC_Wheel" 136 "TC_ESC_Button" 240 "Startup_Reset" 241 "Initialization"; +VAL_ 817 MFL_Tastencode_2 0 "Key_Released__No_Key" 1 "Context_Menu" 2 "Menu_Up__Next_Screen" 3 "Menu_Down__Previous_Screen" 4 "Up" 5 "Down" 6 "Up__Down_ThumbWheel" 7 "OK__ThumbWheel_Button" 8 "Cancel__Escape" 9 "Main_Menu" 10 "Side_Menu_left" 11 "Side_Menu_right" 12 "FAS_Menu" 13 "Left__Right_ThumbWheel" 14 "FAS_Menu_ThumbWheel" 16 "Volume_Up" 17 "Volume_Down" 18 "Volume_Up__Down_ThumbWheel" 19 "Volume_ThumbWheel_Button" 20 "Audio_Source" 21 "Arrow_A_Up__Right" 22 "Arrow_A_Down__Left" 23 "Arrow_B_Up__Right" 24 "Arrow_B_Down__Left" 25 "PTT__PushToTalk" 26 "PTT_Cancel" 27 "Route_Info" 28 "Hook" 29 "Hang_Up" 30 "Off_Hook" 31 "Light_On__Off" 32 "Mute" 33 "Joker1" 34 "Joker2" 35 "View" 36 "Arrow_A_Up_Right_Down_Left_ThumbWheel" 37 "Lenkradheizung" 38 "Rekuperation" 39 "Tube_Toggle" 40 "DRS_Drag_Reduction_System" 41 "Stopwatch_Start_Stop" 42 "Stopwatch_Nextlap" 100 "MAP" 101 "MAP_Boost" 102 "Turn_signal_left" 103 "Turn_signal_right" 104 "Turn_signal_off" 105 "Flashlight" 106 "Highbeam" 107 "Washer_button" 108 "Wiper_button_left" 109 "Wiper_button_right" 110 "Wiper_button_cancel" 111 "Exhaust_Sound" 112 "Drive_Select_button" 113 "Sport_button" 114 "ESP_Drift_Selection_ThumbWheel" 115 "PTT_special_vehicle" 116 "TravelAssist" 117 "Launch_Control" 118 "Drift_Mode_Button_Increase" 119 "Drift_Mode_Button_Decrease" 120 "Drift_Mode_Button_Select" 121 "Drive_Mode_Button_Increase" 122 "Drive_Mode_Button_Decrease" 123 "Drive_Mode_Button_Select" 124 "E_Boost_Button_Increase" 125 "E_Boost_Button_Decrease" 126 "E_Boost_Button_Select" 127 "PerformanceHybridButton_Increase" 128 "PerformanceHybridButton_Decrease" 129 "EV_Mode_Button" 130 "HUD_Button" 131 "PASM_Wheel" 132 "PASM_Button" 133 "PTV_Wheel" 134 "PTV_Button" 135 "TC_ESC_Wheel" 136 "TC_ESC_Button" 240 "Startup_Reset" 241 "Initialization"; +VAL_ 817 MFL_Eventcode_1 0 "W_no_event____T_no_event" 1 "W_1_Tick_up__T_pressed_normal" 2 "W_2_Ticks_up__T_touched" 3 "W_3_Ticks_up__T_double_click_nor" 4 "W_4_Ticks_up__T_long_press_nor_1" 5 "W_5_Ticks_up__T_long_press_nor_2" 6 "W_6_Ticks_up__T_long_press_nor_3" 7 "W_7_Ticks_up" 9 "W_7_Ticks_dn__T_pressed_strong" 10 "W_6_Ticks_dn" 11 "W_5_Ticks_dn__T_double_click_str" 12 "W_4_Ticks_dn__T_long_press_str_1" 13 "W_3_Ticks_dn__T_long_press_str_2" 14 "W_2_Ticks_dn__T_long_press_str_3" 15 "W_1_Tick_dn"; +VAL_ 817 MFL_Eventcode_2 0 "W_no_event____T_no_event" 1 "W_1_Tick_up__T_pressed_normal" 2 "W_2_Ticks_up__T_touched" 3 "W_3_Ticks_up__T_double_click_nor" 4 "W_4_Ticks_up__T_long_press_nor_1" 5 "W_5_Ticks_up__T_long_press_nor_2" 6 "W_6_Ticks_up__T_long_press_nor_3" 7 "W_7_Ticks_up" 9 "W_7_Ticks_dn__T_pressed_strong" 10 "W_6_Ticks_dn" 11 "W_5_Ticks_dn__T_double_click_str" 12 "W_4_Ticks_dn__T_long_press_str_1" 13 "W_3_Ticks_dn__T_long_press_str_2" 14 "W_2_Ticks_dn__T_long_press_str_3" 15 "W_1_Tick_dn"; +VAL_ 817 MFL_Marke 0 "VW" 1 "Audi" 2 "Seat" 3 "Skoda" 4 "VW_Nutzf" 5 "Bugatti" 6 "Lamborghini" 7 "Bentley" 8 "Rolls Royce" 9 "Quattro" 10 "kein_Hersteller_1" 11 "kein_Hersteller_2" 12 "kein_Hersteller_3" 13 "kein_Hersteller_4" 14 "Ford" 15 "Porsche"; +VAL_ 817 MFL_Tip_Down 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 817 MFL_Tip_Up 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 817 MFL_SatModul_links_Err 0 "kein_Fehler" 1 "Fehler"; +VAL_ 817 MFL_SatModul_rechts_Err 0 "kein_Fehler" 1 "Fehler"; +VAL_ 817 MFL_LR_HZG_Status 0 "inaktiv" 1 "aktiv"; +VAL_ 817 MFL_LR_HZG_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Signalhorn 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 817 MFL_Signalhorn_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Tip_links_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Tip_rechts_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Taste_links_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Taste_rechts_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_ECU_Err 0 "normal" 1 "Fehler"; +VAL_ 817 MFL_Response_Err 0 "normal" 1 "Fehler"; +VAL_ 850 Parken_SM_03_MUX 0 "MUX_Gruppe_Punktinfo_0" 1 "MUX_Gruppe_Punktinfo_1" 2 "MUX_Gruppe_Punktinfo_2" 3 "MUX_Gruppe_Punktinfo_3" 4 "MUX_Gruppe_Punktinfo_4" 5 "MUX_Gruppe_Punktinfo_5" 6 "MUX_Gruppe_Punktinfo_6"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_00 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_01 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_02 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_03 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_04 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_05 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 850 Parken_SM_03_Traj_Trans_ID_06 0 "Transaktions_ID_0" 1 "Transaktions_ID_1" 2 "Transaktions_ID_2" 3 "Transaktions_ID_3" 4 "Transaktions_ID_4" 5 "Transaktions_ID_5" 6 "Transaktions_ID_6" 7 "Transaktions_ID_7" 8 "Transaktions_ID_8" 9 "Transaktions_ID_9" 10 "Transaktions_ID_10" 11 "Transaktions_ID_11" 12 "Transaktions_ID_12" 13 "Transaktions_ID_13" 14 "Transaktions_ID_14" 15 "Transaktions_ID_15"; +VAL_ 869 NVEM_Pilot_Info 0 "Init" 1 "keine_Einschraenkung" 2 "Veto_1" 3 "Veto_2"; +VAL_ 869 NVEM_P_Generator_Status 0 "gefiltert" 1 "ungefiltert"; +VAL_ 869 BEM_P_Generator 255 "Fehler"; +VAL_ 869 BEM_n_LLA 0 "keine_Erhoehung" 1 "Stufe_1" 2 "Stufe_2" 3 "Stufe_3"; +VAL_ 869 BEM_Anf_KL 0 "keine Anforderung" 1 "Anforderung Kühlerlüfter Ansteuerung"; +VAL_ 869 BEM_StartStopp_Info 0 "Motorlauf_nicht_notwendig_(Stoppfreigabe)" 1 "Motoranlauf_nicht_zwingend_notwendig_(Stoppverbot,keine_Startanforderung)" 2 "Motoranlauf_zwingend_notwendig_(Startanforderung)" 3 "Systemfehler"; +VAL_ 869 BEM_Batt_Ab 0 "verbunden" 1 "nicht_verbunden"; +VAL_ 869 BEM_Hybrid_Info 0 "keine_Einschraenkung_durch_Energiemanagement" 1 "Motorstart_ueber_12V_Starter_nur_bei_0kmh_moeglich" 2 "kein_Motorstart_ueber_12V_Starter_nach_el_Fahrtbetrieb" 3 "Systemfehler"; +VAL_ 869 NVEM_Red_KL 0 "Init" 1 "Abschaltung_KL" 2 "Reduzierung_KL"; +VAL_ 869 NVEM_Freilauf_Info 0 "Freilauf_freigegeben" 1 "Weiches_Veto_uebertippbar" 2 "Hartes_Veto_Abbruch" 3 "Freilauf_Anforderung"; +VAL_ 869 BEM_HYB_DC_uMinLV 254 "Init" 255 "Fehler"; +VAL_ 870 BM_ZV_auf 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_ZV_zu 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_DWA_ein 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_DWA_Alarm 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Crash 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Panik 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Not_Bremsung 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_GDO 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Warnblinken 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Taxi_Notalarm 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Telematik 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_links 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_rechts 0 "inaktiv" 1 "aktiv"; +VAL_ 870 Blinken_li_Fzg_Takt 0 "Blinker_links_ausgeschaltet" 1 "Blinker_links_eingeschaltet"; +VAL_ 870 Blinken_re_Fzg_Takt 0 "Blinker_rechts_ausgeschaltet" 1 "Blinker_rechts_eingeschaltet"; +VAL_ 870 Blinken_li_Kombi_Takt 0 "Blinkerkontrolllampe_links_ausgeschaltet" 1 "Blinkerkontrolllampe_links_eingeschaltet"; +VAL_ 870 Blinken_re_Kombi_Takt 0 "Blinkerkontrolllampe_rechts_ausgeschaltet" 1 "Blinkerkontrolllampe_rechts_eingeschaltet"; +VAL_ 870 BM_NBA_n_codiert_n_aktiv 0 "codiert_AND_kein_Fehler" 1 "nicht_codiert_OR_Fehler_erkannt"; +VAL_ 870 BM_NBA_Status 0 "NBA_nicht_aktiv" 1 "BRL_Dunkelphase" 3 "BRL_Hellphase"; +VAL_ 870 BM_WBT_Beleuchtung 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_HD_Oeffnung_angelernt 0 "keine_Quittierung" 1 "Quittierung"; +VAL_ 870 BM_Autobahn 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Rollenmodus_Blinken 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Recas 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Wischblinken 0 "inaktiv" 1 "aktiv"; +VAL_ 870 BM_Telematik_Abbruchgrund 0 "Init" 1 "speed_out_of_range" 2 "defect" 3 "clamp_s_on" 4 "clamp_15_on" 5 "door_open" 6 "engine_hood_open" 7 "trunk_open" 8 "convertible_top_not_locked" 9 "horn_activated_by_user" 10 "Higher_Prioritiy_Function_active" 11 "Central_Lock_status_changed" 12 "Request_Dropped_by_Requester" 13 "Service_Duration_Expired" 14 "not_possible_due_to_coding" 15 "no_reason_or_unknown_timeout"; +VAL_ 870 BM_PiloPa 0 "PiloPa_Blinkerquittierung_inaktiv" 1 "PiloPa_Blinkerquittierung_aktiv"; +VAL_ 870 DWA_Alarmquelle 0 "kein_Ausloesegrund" 1 "Tuerkontakt_Fahrertuer" 2 "Tuerkontakt_Beifahrertuer" 3 "Tuerkontakt_hinten_links" 4 "Tuerkontakt_hinten_rechts" 5 "Motorhaubenkontakt_vorne" 6 "Kofferraum_hinten" 7 "Masseschleife_der_Heckscheibe" 8 "Innenraumueberwachung" 9 "Alarm_durch_Noteinstieg" 10 "Sounder" 11 "Neigungssensor" 12 "TSG_FT_am_CAN_Bus" 13 "TSG_BT_am_CAN_Bus" 14 "TSG_HFS_am_CAN_Bus" 15 "TSG_HBFS_am_CAN_Bus" 16 "Klemme_15" 17 "Klemme_15sig" 18 "frei" 19 "Anhaengerueberwachung" 20 "Scheinwerferueberwachung_links" 21 "Scheinwerferueberwachung_rechts" 22 "Handschuhkasten" 23 "Verdeckueberwachung" 24 "OBD_Alarm" 25 "Power_on_Reset" 30 "Init" 31 "Fehler"; +VAL_ 888 GNSS_Ortung_Hoehe 4094 "Init" 4095 "Fehler"; +VAL_ 891 GNSS_UTC_Zeit 0 "Init"; +VAL_ 891 GNSS_Empfaenger_Status 0 "Backup_Mode" 1 "Live"; +VAL_ 891 GNSS_GPS_in_Nutzung 0 "unbenutzt" 1 "benutzt"; +VAL_ 891 GNSS_GLONASS_in_Nutzung 0 "unbenutzt" 1 "benutzt"; +VAL_ 891 GNSS_Empfangbare_Satelliten 0 "Init" 31 "31_oder_mehr"; +VAL_ 891 GNSS_Sichtbare_Satelliten 0 "Init" 31 "31_oder_mehr"; +VAL_ 891 GNSS_Genutzte_Satelliten 0 "Init" 31 "31_oder_mehr"; +VAL_ 916 WBA_Fahrstufe_02 0 "Zwischenstellung_keine_Position" 1 "Position_P" 2 "Position_R" 3 "Position_N" 4 "Position_D" 5 "Position_S" 6 "Position_M_Tippfunktion" 7 "Kurzzeit_M" 8 "Position_E" 9 "Position_MS" 10 "Position_S_Plus" 11 "Position_MS_Plus" 12 "Position_Offroad" 13 "Position_B"; +VAL_ 916 WBA_ZielFahrstufe 0 "keine_Gangempfehlung_kein_Gang_eingelegt" 1 "Pfeil_nach_S" 2 "Pfeil_nach_D" 3 "Pfeil_nach_M" 4 "Pfeil_nach_E"; +VAL_ 916 WBA_GE_Warnung_02 0 "keine_Anzeige" 1 "Fehlereskalationsstufe_I" 2 "Fehlereskalationsstufe_II" 3 "Weiterfahrt_nur_eingeschraenkt_moeglich__Kein_R_Gang" 4 "Getriebefehler_Weiterfahrt_nur_in_D_moeglich__P_bei_Motor_aus" 5 "Wegrollgefahr__P_nicht_moeglich" 6 "Paddlenotbetrieb_Schema+Warnung" 7 "Paddlenotbetrieb_Schema" 8 "Geschwindigkeitsbegrenzung_Notlauf" 9 "Fehlereskalationsst_o_Einschr" 10 "Fehlereskalationsstufe_v_Limit" 11 "Parksperre_Infostufe" 12 "Parksperre_Warnstufe_I" 13 "Parksperre_Warnstufe_II"; +VAL_ 916 WBA_eing_Gang_02 0 "keine_Ganganzeige" 1 "Gang_1" 2 "Gang_2" 3 "Gang_3" 4 "Gang_4" 5 "Gang_5" 6 "Gang_6" 7 "Gang_7" 8 "Gang_8" 9 "Gang_9" 10 "Funktion_Ganganzeigeunterdrueckung" 11 "Gang_10"; +VAL_ 916 WBA_GE_Texte 0 "keine_Anzeige" 1 "zum_Einlegen_einer_Fahrstufe_Fussbremse_betaetigen__ShiftLock_Information" 2 "zum_Einlegen_von_R_N_D_Fussbremse_betaetigen_und_Motor_starten" 3 "Wegrollgefahr_bitte_P_einlegen" 4 "Achtung_Zeitueberschreitung_P_wird_eingelegt" 5 "Wiederanmeldeprozedur_Bremse_betaetigen" 6 "P_nur_im_Stillstand_moeglich" 7 "Rennstart_aktiv"; +VAL_ 916 WBA_Segeln_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 916 WBA_Schaltschema 0 "kein_Schaltschema" 1 "xxxD(S)" 2 "xxxD_S" 3 "xxxS(D)" 4 "xxxS_D" 5 "xxxM(D)" 6 "xxxM_D" 7 "xxxM(S)" 8 "xxxM_S" 9 "xxxE(D)" 10 "xxxE_D" 11 "xxxE(S)" 12 "xxxE_S" 13 "xxxE(M)" 14 "xxxE_M"; +VAL_ 916 WBA_GE_Zusatzwarnungen 0 "keine_Anzeige" 1 "Getriebeueberhitzung_Warnstufe_I" 2 "Getriebeueberhitzung_Warnstufe_II" 3 "Getriebefehler_Bitte_anhalten_und_P_einlegen"; +VAL_ 916 GE_Sollgang 0 "keine_Empfehlung" 1 "Gang_1" 2 "Gang_2" 3 "Gang_3" 4 "Gang_4" 5 "Gang_5" 6 "Gang_6" 7 "Gang_7" 8 "Gang_8" 9 "Gang_9" 11 "Gang_10"; +VAL_ 916 GE_Tipschaltempf_verfuegbar 0 "nicht_verfuegbar" 1 "verfuegbar"; +VAL_ 916 WBA_GE_Texte_02 0 "Keine_Anzeige" 1 "Fahrtrichtungswechsel_nur_nach_Stillstandt" 2 "Ladestecker_gesteckt" 3 "zusaetzlicher_Service_erforderlich" 4 "eLaunch_Aktiv" 5 "eLaunch_nicht_moeglich" 6 "WH_S_nicht_moeglich_Offroad" 7 "WH_S_nicht_moeglich_RangeMode"; +VAL_ 916 WBA_GE_Texte_03 0 "init" 1 "LC_not_available" 2 "LCperformance_not_possible" 3 "LCperformance_possible" 4 "LCperformance_armed" 5 "LCperformance_preparation" 6 "LCperformance_launch" 7 "LCperformance_aborted" 8 "LCsmoke_not_possible" 9 "LCsmoke_possible" 10 "LCsmoke_armed" 11 "LCsmoke_launch" 12 "LCsmoke_aborted" 15 "Fehler"; +VAL_ 916 WBA_Blinken 0 "kein_WBA_Blinken" 1 "WBA_Blinken"; +VAL_ 916 GE_Wiederstart_Anz_Std 0 "keine_Anzeige" 1 "Standard_Wiederstartgrund"; +VAL_ 916 GE_Stoppverbot_Anz_01 0 "keine_Anzeige" 1 "Temperaturbedingung"; +VAL_ 916 GE_Stoppverbot_Anz_02 0 "keine_Anzeige" 1 "Drucksensorausfall"; +VAL_ 916 GE_Stoppverbot_Anz_03 0 "keine_Anzeige" 1 "Grundeinstellung"; +VAL_ 916 GE_Stoppverbot_Anz_04 0 "keine_Anzeige" 1 "Demontagestellung"; +VAL_ 916 GE_Stoppverbot_Anz_05 0 "keine_Anzeige" 1 "Eingeschraenkte_Fahrfunktion_Notlauf_Liegenbleiber"; +VAL_ 916 GE_Stoppverbot_Anz_06 0 "keine_Anzeige" 1 "Stoppverbot_ueber_Applikation"; +VAL_ 916 GE_Stoppverbot_Anz_07 0 "keine_Anzeige" 1 "Schaltung_aktiv"; +VAL_ 916 GE_Stoppverbot_Anz_Std 0 "keine_Anzeige" 1 "Standard_Stoppvetogrund"; +VAL_ 919 LDW_Gong 1 "Chime" 2 "Beep" 0 "None"; +VAL_ 919 LDW_Texte 8 "laneAssistTakeOver" 4 "laneAssistTakeOverUrgent" 0 "none"; +VAL_ 949 KL_Drehz_Anh 0 "keine_Anhebung" 1 "Drehzahlanhebung_vom_Motor_angefordert"; +VAL_ 949 KL_Vorwarn_Komp_ein 0 "Init" 1 "Vorwarnung_Kompressor_ein"; +VAL_ 949 KL_AC_Schalter 0 "aus" 1 "ein"; +VAL_ 949 KL_Komp_Moment_alt 1 "veraltet_bzw_Ermittlung_des_Moments_nicht_moeglich__zB_keine_Drehzahl_kein_Kaeltemitteldruck"; +VAL_ 949 KL_Vorwarn_Zuheizer_ein 0 "keine_Vorwarnung" 1 "Vorwarnung_Zuheizer_ein"; +VAL_ 949 KL_Zustand 0 "Aus" 1 "Ein"; +VAL_ 949 KL_Kompressorkupplung_linear 253 "volle_Ansteuerung" 254 "Init__nicht_bedient"; +VAL_ 949 KL_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 949 KL_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 949 KL_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 949 KL_T_Charge 0 "Taster_nicht_betaetigt" 1 "Taster_betaetigt"; +VAL_ 949 KL_Last_Kompr 255 "Fehler"; +VAL_ 949 KL_Spannungs_Anf 0 "keine_Anforderung" 1 "Anforderung_Stufe_1" 2 "Anforderung_Stufe_2" 3 "Anforderung_Stufe_3"; +VAL_ 949 KL_Thermomanagement 0 "keine_Freigabe_TMM__max_Heizbedarf" 1 "kleine_Freigabe_TMM" 2 "mittlere_Freigabe_TMM" 3 "volle_Freigabe_TMM__kein_Heizbedarf"; +VAL_ 949 KL_StartStopp_Info 0 "Motorlauf_nicht_notwendig_(Stoppfreigabe)" 1 "Motoranlauf_nicht_zwingend_notwendig_(Stoppverbot,keine_Startanforderung)" 2 "Motoranlauf_zwingend_notwendig_(Startanforderung)" 3 "Systemfehler"; +VAL_ 949 KL_Freilauf_Info 0 "Freilauf_freigegeben" 1 "Uebergang_in_Freilauf_unzulaessig" 2 "Freilauf_nicht_freigegeben_Abbruch" 3 "Freilauf_Anforderung"; +VAL_ 949 KL_Anf_KL 255 "Fehler"; +VAL_ 949 KL_el_Zuheizer_Stufe 0 "Aus" 1 "Stufe_1" 2 "Stufe_2" 3 "Stufe_3"; +VAL_ 949 KL_Ausstattung_Klima 0 "Heizung_elektrisch" 1 "Klimamanuell_elektrisch" 2 "Climatic__1_Zone" 3 "Climatronic__1_Zone" 4 "Climatronic__2_Zonen" 5 "Climatronic__3_Zonen" 6 "Climatronic__4_Zonen" 7 "reserviert"; +VAL_ 949 KL_Variante_Standheizung 0 "Wasserstandheizung_60_min_Laufzeit" 1 "Luftstandheizung_120_min_Laufzeit" 2 "Wasserstandheizung_120_min_Laufzeit" 3 "Wasser_und_Luftstandheizung_120_min_Laufzeit"; +VAL_ 958 MO_StartStopp_Status 0 "System_in_diesem_KL15_Zyklus_nicht_verfuegbar" 1 "System_aktiv_keine_Freigabe_durch_StartStop_Koordinator" 2 "System_aktiv_alle_Freigaben_liegen_vor" 3 "System_aktiv_mindestens_eine_Freigabe_fehlt"; +VAL_ 958 MO_StartStopp_Wiederstart 0 "Wiederstart_inaktiv" 1 "Wiederstart_aktiv"; +VAL_ 958 MO_StartStopp_Motorstopp 0 "Motor_Stop_inaktiv" 1 "Motor_Stop_aktiv"; +VAL_ 958 MO_Freig_Reku 0 "Rekuperations-Modus aus" 1 "Empfehlung Spannungsanhebung" 2 "Empfehlung Spannungsabsenkung" 3 "Rekuperationsmodus aktiv, Spannungsvariation nicht notwendig"; +VAL_ 958 MO_Kl_75 0 "Aus" 1 "Ein"; +VAL_ 958 MO_Kl_50 0 "aus" 1 "KL50_ein_Startausfuehrung_Fahrer"; +VAL_ 958 MO_Gangposition 0 "Gang_N" 1 "Gang_1" 2 "Gang_2" 3 "Gang_3" 4 "Gang_4" 5 "Gang_5" 6 "Gang_6" 7 "Gang_7" 8 "Gang_8" 9 "Automat_P" 10 "Automat_Vorwaerts_S" 11 "Automat_Vorwaerts_D/E" 12 "Zwischenstellung" 13 "Gang_R" 14 "Istgang_nicht_definiert" 15 "Fehler"; +VAL_ 958 MO_StartStopp_Fahrerwunsch 0 "Init" 1 "Stoppverbot_durch_Fahrer" 2 "Stoppfreigabe_durch_Fahrer" 3 "Stoppanforderung_durch_Fahrer"; +VAL_ 958 MO_HYB_Fahrbereitschaft 0 "keine_Fahrbereitschaft" 1 "Fahrbereitschaft"; +VAL_ 958 MO_Ext_E_Fahrt_aktiv 0 "Rueckmeldung_E_Taster_aus" 1 "Rueckmeldung_E_Taster_ein"; +VAL_ 958 MO_Fahrer_bremst 0 "kein_Bremsen" 1 "Bremse_betaetigt"; +VAL_ 958 MO_QBit_Fahrer_bremst 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 958 MO_BLS 0 "kein_Bremsen" 1 "Bremse_betaetigt"; +VAL_ 958 MO_Konsistenz_Bremsped 0 "Bremspedalinformation_plausibel" 1 "Bremspedalinformation_unplausibel"; +VAL_ 958 MO_KomFehler_ESP 0 "kein_Fehler" 1 "Fehler"; +VAL_ 958 MO_Klima_Eingr 0 "kein Eingriff" 1 "Klimakompressor ausschalten" 2 "Klimakompressor Leistungsreduzierung" 3 "Klimakompressor aufgrund der Heissleuchtenvorwarnung ausschalten"; +VAL_ 958 MO_Aussp_Anlass 0 "Anlasser_darf_angesteuert_werden" 1 "Anlasser_ausspuren__Ansteuerung_nicht_moeglich"; +VAL_ 958 MO_Freig_Anlass 0 "Start_nicht_zulaessig" 1 "Startfreigabe"; +VAL_ 958 MO_Kuppl_schalter 0 "Schalter_sagt_ausgekuppelt" 1 "Schalter_sagt_eingekuppelt"; +VAL_ 958 MO_Interlock 0 "Interlockschalter_nicht_betaetigt" 1 "Interlockschalter_betaetigt"; +VAL_ 958 MO_Motor_laeuft 0 "Motor_laeuft_nicht" 1 "Motor_laeuft_autark_und_stabil_und_darf_mechanisch_belastet_werden"; +VAL_ 958 MO_Kickdown 0 "kein_Kickdown" 1 "Kickdown"; +VAL_ 958 MO_QBit_KL_75 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 958 MO_EKlKomLeiRed 0 "keine_Leistungsbegr" 1 "Leistungsbegr_75" 2 "Leistungsbegr_50" 3 "Leistungsbegr_25"; +VAL_ 958 MO_Handshake_STH 0 "keine EKP-Ansteuerung durch STH-Anforderung" 1 "EKP-Ansteuerung durch STH-Anforderung"; +VAL_ 958 MO_BKV_Unterdruckwarnung 0 "Unterdruckhaushalt_iO" 1 "Unterdruckhaushalt_niO"; +VAL_ 958 MO_Freigabe_Segeln 0 "Segelbetrieb_nicht_freigegeben" 1 "Segelbetrieb_freigegeben"; +VAL_ 958 MO_PTC_Status 0 "nicht_unterstuetzt" 1 "Stufe_0" 2 "Stufe_1" 3 "Stufe_2" 4 "Stufe_3" 7 "PTC_am_BCM"; +VAL_ 958 MO_QBit_Gangposition 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 958 MO_Signalquelle_Gangposition 0 "Sensorsignal" 1 "Modellsignal"; +VAL_ 958 MO_Remotestart_Betrieb 0 "MSG_nicht_bereit_fuer_RS_Betrieb" 1 "MSG_bereit_fuer_oder_im_RS_Betrieb"; +VAL_ 958 MO_Remotestart_moeglich 0 "Remotestart_nicht_moeglich" 1 "Remotestart_moeglich"; +VAL_ 958 MO_FMAus_aktiv 0 "inaktiv" 1 "Segeln_mit_Motor_aus_aktiv"; +VAL_ 958 MO_FMAus_Startvariante 0 "kein_Motorstart" 1 "Motorstart_elektrischer_Starter" 2 "GetriebeAnschleppstart" 3 "GetriebeNotAnschleppstart"; +VAL_ 958 MO_BMS_NV_Anf_stuetzen 0 "nicht_notwendig" 1 "notwendig"; +VAL_ 958 MO_Zylinderabschaltung 0 "Vollmotorbetrieb_VMB" 1 "Uebergang_HMB_in_VMB" 2 "Uebergang_VMB_in_HMB" 3 "Halbmotorbetrieb_HMB"; +VAL_ 958 MO_HYB_VM_aktiv 0 "VM_nicht_aktiv" 1 "VM_aktiv"; +VAL_ 958 MO_StartVorauss_erfuellt 0 "Signal_nicht_bedient" 1 "StartVorauss_nicht_ueberpruefbar" 2 "StartVorauss_nicht_erfuellt" 3 "StartVorauss_erfuellt"; +VAL_ 960 RSt_Fahrerhinweise 0 "Init" 1 "Fahreruebernahme_Hinweis_ZAT_Automat_ohne_Gong" 2 "Fahreruebernahme_Hinweis_ZAT_Automat_mit_Gong" 3 "Fahreruebernahme_Hinweis_ZAT_Handschalter_ohne_Gong" 4 "Fahreruebernahme_Hinweis_ZAT_Handschalter_mit_Gong" 5 "Fahreruebernahme_Hinweis_ZAS_Automat_ohne_Gong" 6 "Fahreruebernahme_Hinweis_ZAS_Automat_mit_Gong" 7 "Fahreruebernahme_Hinweis_ZAS_Handschalter_ohne_Gong" 8 "Fahreruebernahme_Hinweis_ZAS_Handschalter_mit_Gong" 9 "RemoteStart_aktiv_ohne_Gong" 10 "RemoteStart_aktiv_mit_Gong" 11 "void" 12 "void" 13 "void" 14 "void" 15 "void"; +VAL_ 960 ZAS_Kl_S 0 "aus" 1 "S_Kontakt_ein"; +VAL_ 960 ZAS_Kl_15 0 "aus" 1 "ein"; +VAL_ 960 ZAS_Kl_X 0 "aus" 1 "ein"; +VAL_ 960 ZAS_Kl_50_Startanforderung 0 "aus" 1 "KL50_ein_Startwunsch_Fahrer"; +VAL_ 960 BCM_Remotestart_Betrieb 0 "kein_RS_Betrieb" 1 "RS_Betrieb"; +VAL_ 960 ZAS_Kl_Infotainment 0 "inaktiv" 1 "aktiv"; +VAL_ 960 BCM_Remotestart_KL15_Anf 0 "inaktiv" 1 "aktiv"; +VAL_ 960 BCM_Remotestart_MO_Start 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 960 KST_Warn_P1_ZST_def 0 "nicht_defekt" 1 "defekt"; +VAL_ 960 KST_Warn_P2_ZST_def 0 "nicht_defekt" 1 "defekt"; +VAL_ 960 KST_Fahrerhinweis_1 0 "inaktiv" 1 "aktiv"; +VAL_ 960 KST_Fahrerhinweis_2 0 "inaktiv" 1 "aktiv"; +VAL_ 960 BCM_Ausparken_Betrieb 0 "kein_Betrieb" 1 "Ausparkvorgang_aktiv"; +VAL_ 960 KST_Fahrerhinweis_4 0 "inaktiv" 1 "aktiv"; +VAL_ 960 KST_Fahrerhinweis_5 0 "inaktiv" 1 "aktiv"; +VAL_ 960 KST_Fahrerhinweis_6 0 "inaktiv" 1 "aktiv"; +VAL_ 967 MO_Kuehlerluefter_MUX 0 "Kuehlerluefter_1" 1 "Kuehlerluefter_2"; +VAL_ 967 MO_Kuehlerluefter_1 126 "Init" 127 "Fehler"; +VAL_ 967 MO_Kuehlerluefter_2 126 "Init" 127 "Fehler"; +VAL_ 967 MO_EFLEX_Lampe 0 "Lampe_aus" 1 "Lampe_ein" 2 "Lampe_blinkend" 3 "Lampe_blinkend_mit_Akustik"; +VAL_ 967 MO_KJS_nicht_bereit 0 "kein_Fehler" 1 "Fehler"; +VAL_ 967 MO_ITM_Warnung_Pumpe 0 "keine_Warnung" 1 "ITM_Warnung"; +VAL_ 967 WIV_Anzeige_aktiv 0 "Anzeige aus" 1 "WIV Anzeige aktiv"; +VAL_ 967 WIV_Oelmin_Warn 0 "in_Ordnung" 1 "Warnung"; +VAL_ 967 WIV_Sensorfehler 0 "in_Ordnung" 1 "Sensor_defekt"; +VAL_ 967 WIV_Schieflage 0 "Fahrzeug_gerade" 1 "Fahrzeug_in_Schieflage"; +VAL_ 967 MO_Zustand_HWP 0 "HWP_nicht_schaltbar" 1 "HWP_foerdert_nicht" 2 "HWP_foerdert" 3 "reserviert"; +VAL_ 967 OLEV_Systemstoerung 0 "֬system i.O." 1 "Systemstörung ֬system"; +VAL_ 967 MO_Oelwarnung_max 0 "keine_Warnung" 1 "Warnfall_aktiv"; +VAL_ 967 WIV_Oelsystem_aktiv 0 "Anzeige_aus" 1 "Anzeige_aktiv"; +VAL_ 967 WIV_nicht_betriebswarm 0 "Motor_warm" 1 "Motor_nicht_betriebswarm"; +VAL_ 967 WIV_Ueberfuell_Warn 0 "in_Ordnung" 1 "Ueberfuellwarnung"; +VAL_ 967 WIV_laufender_Motor 0 "Messung_moeglich" 1 "Messung_nicht_moeglich"; +VAL_ 967 MO_E_Warnungen 0 "keine_Anzeige" 1 "Fehler_Elektrosystem_Anhalten" 2 "Fehler_Elektrosystem_Werkstatt" 3 "Elektrosystem_ueberhitzt_Stopp" 4 "Fehler_Hybridsystem_Anhalten" 5 "Fehler_Hybridsystem_Werkstatt" 6 "Fehler_Wasserstoffsystem_Anhalte" 7 "Fehler_Wasserstoffsystem_Werksta" 8 "reserviert_keine_Anzeige" 9 "reserviert_keine_Anzeige" 10 "reserviert_keine_Anzeige" 11 "reserviert_keine_Anzeige" 12 "reserviert_keine_Anzeige" 13 "reserviert_keine_Anzeige" 14 "reserviert_keine_Anzeige" 15 "reserviert_keine_Anzeige"; +VAL_ 967 MO_Text_Motorstart 0 "keine_Anzeige" 1 "Motor_im_Stoppbetrieb" 2 "StartStopp_sicherheitsbedingt_deaktiviert" 3 "System_fordert_Wiederstart" 4 "Aufforderung_Motorstart" 5 "Motorlauf_noetig" 6 "Motorlaufwarnung" 9 "Unerwuenschter_Motorstillstand" 10 "Motorstart_nicht_moeglich" 11 "Fehler_Kupplungsschalter" 12 "Motor_startet" 13 "Kupplung_betaetigen" 14 "Waehlhebel_in_PN_Position" 15 "Bremse_treten"; +VAL_ 967 MO_E_Texte 0 "keine_Anzeige" 1 "Batterie_fast_leer" 2 "Ladestecker_nicht_fahrbereit" 3 "VM_Betrieb_erforderlich" 4 "Batterie_laedt_Nicht_ausschalten" 5 "Bitte_Bremse_treten" 6 "manueller_Neustart_erforderlich" 7 "Stopp_Fahrzeug_nicht_abschleppen" 8 "kein_Neustart_Haube_nicht_oeffnen" 9 "Motorstart_im_naechsten_Zyklus" 10 "VM_erforderlich_EVMode_abwaehlen" 11 "laengerer_VMBetrieb_Bordbuch" 12 "Tank_leer_VM_nicht_verfuegbar" 13 "Bitte_warten_Motor_startet" 14 "kein_Start_Batterietemperatur" 15 "Ende_elektrische_Reichweite_erreicht"; +VAL_ 967 WIV_Oeldyn_avl 0 "Oeldyn_nicht_vorhanden" 1 "Oeldyn_vorhanden"; +VAL_ 967 OLEV_Oelstand_nicht_vorhanden 0 "֬stand vorhanden" 1 "֬stand nicht vorhanden"; +VAL_ 967 MO_Systemlampe 0 "Lampe aus" 1 "Lampe ein"; +VAL_ 967 MO_OBD2_Lampe 0 "Lampe aus" 1 "Lampe ein"; +VAL_ 967 MO_Heissleuchte 0 "Lampe aus" 1 "Lampe ein"; +VAL_ 967 MO_Partikel_Lampe 0 "Lampe aus" 1 "Lampe ein"; +VAL_ 967 MO_RedFahrleistung_Lampe 0 "Lampe_aus" 1 "Lampe_ein"; +VAL_ 967 WIV_Oelstand_nicht_vorhanden 0 "֬stand vorhanden" 1 "֬stand nicht vorhanden"; +VAL_ 967 WIV_nachfuellanzeige_ein 0 "keine_Nachfuellanzeige" 1 "Nachfuellanzeige"; +VAL_ 967 WIV_Ueberfuell_deaktiv 0 "Ueberfuellwarnung_am_Kombi_aktiv" 1 "Ueberfuellwarnung_am_Kombi_deaktiv"; +VAL_ 967 WIV_Unterfuell_Warn 0 "in_Ordnung" 1 "Unterfuellwarnung"; +VAL_ 967 MO_Tankdeckel_Lampe 0 "Lampe aus" 1 "Lampe ein"; +VAL_ 967 MO_Text_Tankdeckelwarn 0 "kein_Text" 1 "Anzeige_Text_Tankdeckelwarnung_im_Kombi"; +VAL_ 967 MO_Vorglueh_Lampe 0 "Lampe_aus" 1 "Lampe_ein"; +VAL_ 967 WIV_Oeldr_Warn_Motor 0 "keine_Warnung" 1 "niedrige_Oeldruckstufe_nicht_erreicht"; +VAL_ 967 MO_E_Mode 0 "keine_Anzeige" 1 "E_Mode_passiv" 2 "E_Mode_aktiv" 3 "E_Mode_inaktiv_nicht_verfuegbar" 4 "E_Mode_aktiv_nicht_verfuegbar" 5 "reserviert_keine_Anzeige" 6 "reserviert_keine_Anzeige" 7 "reserviert_keine_Anzeige"; +VAL_ 974 HFS_Tuer_geoeffnet 0 "geschlossen" 1 "offen"; +VAL_ 974 HFS_verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 974 HFS_gesafet 0 "nicht_gesafet" 1 "gesafet"; +VAL_ 974 HFS_Heckrollotaster_betaetigt 0 "keine_Verfahranweisung_in_Richtung_Hoch" 1 "In_Richtung_Hoch_Verfahren"; +VAL_ 974 HFS_Tuerschloss_defekt 0 "Tuerschloss_funktionsfaehig" 1 "Tuerschloss_defekt"; +VAL_ 974 HFS_Unlock_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_Lock_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_Sperrklinke 0 "Schloss_in_Vorraste_und_Hauptraste" 1 "Tuer_auf_oder_Tuer_Position_zwischen_Vor_und_Hauptraste"; +VAL_ 974 HFS_TAG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_TIG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_FH_S_HBFS_AutoHoch 0 "keine_Bedienung" 1 "Automatiklauf_Angefordert"; +VAL_ 974 HFS_FH_S_HBFS_AutoTief 0 "keine_Bedienung" 1 "Automatiklauf_Angefordert"; +VAL_ 974 HFS_FH_S_HBFS_ManHoch 0 "keine_Bedienung" 1 "Manueller_Lauf_Angefordert"; +VAL_ 974 HFS_FH_S_HBFS_ManTief 0 "keine_Bedienung" 1 "Manueller_Lauf_Angefordert"; +VAL_ 974 HFS_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 974 HFS_SAD_Schalter 0 "nicht_betaetigt" 5 "AUF_manuell" 6 "AUF_automatik" 7 "ZU_manuell" 8 "ZU_automatik" 13 "nicht_verfuegbar" 14 "Init" 15 "Fehler"; +VAL_ 974 HFS_FH_S_ManHoch 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_FH_S_AutoHoch 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_FH_S_ManTief 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_FH_S_AutoTief 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_FH_Bew_hoch 0 "inaktiv" 1 "aktiv"; +VAL_ 974 HFS_FH_Bew_tief 0 "inaktiv" 1 "aktiv"; +VAL_ 974 HFS_FH_Fang 0 "ausserhalb_Fangbereich" 1 "innerhalb_Fangbereich"; +VAL_ 974 HFS_FH_Block 0 "inaktiv" 1 "aktiv"; +VAL_ 974 HFS_FH_Thermo 0 "inaktiv" 1 "aktiv"; +VAL_ 974 HFS_UEKB_aktiviert 0 "inaktiv" 1 "aktiv"; +VAL_ 974 HFS_Tueroeffnen_Warnung 0 "Tuerwarnung_nicht_aktiv" 1 "Tuerwarnung_aktiv"; +VAL_ 974 HFS_FH_normiert 0 "inaktiv" 1 "aktiv"; +VAL_ 974 ASW_Warnung_aktiv_HFS 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 974 HFS_Zuziehhilfe_aktiv 0 "Init" 1 "Zuziehhilfe_aktiv"; +VAL_ 974 HFS_Seitenrollo_hoch 1 "Seitenrollo_in_Bewegung_hoch"; +VAL_ 974 HFS_Seitenrollo_tief 1 "Seitenrollo_in_Bewegung_tief"; +VAL_ 974 HFS_Status_KiSi 0 "inaktiv" 1 "aktiv"; +VAL_ 974 SSR_HFS_Pos_Unten 0 "SSR_Oben" 1 "SSR_Unten"; +VAL_ 974 HFS_Oben_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_o"; +VAL_ 974 HFS_Unten_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_u"; +VAL_ 974 MTHFS_M_Taste 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 MTHFS_Pos1 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 MTHFS_Pos2 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 MTHFS_Pos3 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 974 HFS_MRollo_Schalter 0 "nicht_betaetigt" 1 "ZU_manuell" 2 "ZU_automatik" 3 "AUF_manuell" 4 "AUF_automatik" 5 "nicht_verfuegbar" 6 "Init" 7 "Fehler"; +VAL_ 974 HFS_Lock_Taster_inv 0 "Lock Taster bet䴧it" 1 "Lock Taster nicht bet䴩gt"; +VAL_ 974 HFS_Status_eTAG 0 "Init" 1 "Griff_ausgefahren" 2 "Griff_eingefahren" 3 "Fehler"; +VAL_ 974 HFS_Tuer_Status_QBit 0 "Status_Tuerkontakt_sicher" 1 "Status_Tuerkontakt_unsicher"; +VAL_ 974 HFS_TCR_Mode_aktiv 0 "TCR_Mode_deaktiv" 1 "TCR_Mode_aktiv"; +VAL_ 975 HBFS_Tuer_geoeffnet 0 "geschlossen" 1 "offen"; +VAL_ 975 HBFS_verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 975 HBFS_gesafet 0 "nicht_gesafet" 1 "gesafet"; +VAL_ 975 HBFS_Heckrollotaster_betaetigt 0 "keine_Verfahranweisung_in_Richtung_Hoch" 1 "In_Richtung_Hoch_Verfahren"; +VAL_ 975 HBFS_Tuerschloss_defekt 0 "Tuerschloss_funktionsfaehig" 1 "Tuerschloss_defekt"; +VAL_ 975 HBFS_Unlock_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_Lock_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_Sperrklinke 0 "Schloss_in_Vorraste_und_Hauptraste" 1 "Tuer_auf_oder_Tuer_Position_zwischen_Vor_und_Hauptraste"; +VAL_ 975 HBFS_TAG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_TIG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_FH_S_HFS_AutoHoch 0 "keine_Bedienung" 1 "Automatiklauf_Angefordert"; +VAL_ 975 HBFS_FH_S_HFS_AutoTief 0 "keine_Bedienung" 1 "Automatiklauf_Angefordert"; +VAL_ 975 HBFS_FH_S_HFS_ManHoch 0 "keine_Bedienung" 1 "Manueller_Lauf_Angefordert"; +VAL_ 975 HBFS_FH_S_HFS_ManTief 0 "keine_Bedienung" 1 "Manueller_Lauf_Angefordert"; +VAL_ 975 HBFS_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 975 HBFS_SAD_Schalter 0 "nicht_betaetigt" 5 "AUF_manuell" 6 "AUF_automatik" 7 "ZU_manuell" 8 "ZU_automatik" 13 "nicht_verfuegbar" 14 "Init" 15 "Fehler"; +VAL_ 975 HBFS_FH_S_ManHoch 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_FH_S_AutoHoch 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_FH_S_ManTief 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_FH_S_AutoTief 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_FH_Bew_hoch 0 "inaktiv" 1 "aktiv"; +VAL_ 975 HBFS_FH_Bew_tief 0 "inaktiv" 1 "aktiv"; +VAL_ 975 HBFS_FH_Fang 0 "ausserhalb_Fangbereich" 1 "innerhalb_Fangbereich"; +VAL_ 975 HBFS_FH_Block 0 "inaktiv" 1 "aktiv"; +VAL_ 975 HBFS_FH_Thermo 0 "inaktiv" 1 "aktiv"; +VAL_ 975 HBFS_UEKB_aktiviert 0 "inaktiv" 1 "aktiv"; +VAL_ 975 HBFS_Tueroeffnen_Warnung 0 "Tuerwarnung_nicht_aktiv" 1 "Tuerwarnung_aktiv"; +VAL_ 975 HBFS_FH_normiert 0 "inaktiv" 1 "aktiv"; +VAL_ 975 ASW_Warnung_aktiv_HBFS 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 975 HBFS_Zuziehhilfe_aktiv 0 "Init" 1 "Zuziehhilfe_aktiv"; +VAL_ 975 HBFS_Seitenrollo_hoch 1 "Seitenrollo_in_Bewegung_hoch"; +VAL_ 975 HBFS_Seitenrollo_tief 1 "Seitenrollo_in_Bewegung_tief"; +VAL_ 975 HBFS_Status_KiSi 0 "inaktiv" 1 "aktiv"; +VAL_ 975 SSR_HBFS_Pos_Unten 0 "SSR_Oben" 1 "SSR_Unten"; +VAL_ 975 HBFS_Oben_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_o"; +VAL_ 975 HBFS_Unten_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_u"; +VAL_ 975 MTHBFS_M_Taste 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 MTHBFS_Pos1 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 MTHBFS_Pos2 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 MTHBFS_Pos3 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 975 HBFS_MRollo_Schalter 0 "nicht_betaetigt" 1 "ZU_manuell" 2 "ZU_automatik" 3 "AUF_manuell" 4 "AUF_automatik" 5 "nicht_verfuegbar" 6 "Init" 7 "Fehler"; +VAL_ 975 HBFS_Lock_Taster_inv 0 "Lock Taster bet䴧it" 1 "Lock Taster nicht bet䴩gt"; +VAL_ 975 HBFS_Status_KiSi_inv 0 "aktiv" 1 "inaktiv"; +VAL_ 975 HBFS_Status_eTAG 0 "Init" 1 "Griff_ausgefahren" 2 "Griff_eingefahren" 3 "Fehler"; +VAL_ 975 HBFS_Tuer_Status_QBit 0 "Status_Tuerkontakt_sicher" 1 "Status_Tuerkontakt_unsicher"; +VAL_ 975 HBFS_TIG_betaetigt_schliessen 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 976 FT_Tuer_geoeffnet 0 "Init" 1 "Tuer offen"; +VAL_ 976 FT_verriegelt 0 "Init" 1 "verriegelt"; +VAL_ 976 FT_gesafet 0 "Init" 1 "gesafet"; +VAL_ 976 FT_Schluesselschalter_auf 0 "Init" 1 "Schluesselschalter_auf_betaetigt"; +VAL_ 976 FT_Schluesselschalter_zu 1 "Schluesselschalter zu betaetigt"; +VAL_ 976 FT_Unlock_Taster 0 "Init" 1 "Unlock_Taster_betaetigt"; +VAL_ 976 FT_Lock_Taster 0 "Init" 1 "Lock_Taster_betaetigt"; +VAL_ 976 FT_Sperrklinke 0 "Schloss_in_Vorraste_und_Hauptraste" 1 "Tuer_auf_oder_Tuer_Position_zwischen_Vor_und_Hauptraste"; +VAL_ 976 FT_TAG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 976 FT_TIG_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 976 FT_IRUE_Taste 0 "Init" 1 "IRUE_Taste_betaetigt"; +VAL_ 976 FT_HD_Taste 0 "Init" 1 "Heckdeckel_oeffnen"; +VAL_ 976 FT_TD_Taste_Fehler 0 "iO" 1 "defekt"; +VAL_ 976 FT_TD_Taste 1 "Tankdeckelentriegelungs Taster gedrückt"; +VAL_ 976 SSR_Temp_Freigabe 0 "SSR_Deaktiviert" 1 "SSR_Freigegeben"; +VAL_ 976 FT_HD_Taste_2 0 "Taste_nicht_gedrueckt" 1 "Taste_gedrueckt"; +VAL_ 976 FT_TSG_hinten_verbaut 0 "nicht verbaut" 1 "verbaut"; +VAL_ 976 FT_Sp_Blk_def 0 "iO" 1 "defekt"; +VAL_ 976 FT_FH_S_ManHoch 0 "Init" 1 "FH_Schalter_man_hoch_betaetigt"; +VAL_ 976 FT_FH_S_AutoHoch 0 "Init" 1 "FH_Schalter_auto_hoch_betaetigt"; +VAL_ 976 FT_FH_S_ManTief 0 "Init" 1 "FH_Schalter_man_tief_betaetigt"; +VAL_ 976 FT_FH_S_AutoTief 0 "Init" 1 "FH_Schalter_auto_tief_betaetigt"; +VAL_ 976 FT_FH_Bew_hoch 0 "Init" 1 "FH_in_Bewegung_hoch"; +VAL_ 976 FT_FH_Bew_tief 0 "Init" 1 "FH_in_Bewegung_tief"; +VAL_ 976 FT_FH_Fang 0 "ausserhalb_Fangbereich" 1 "innerhalb_Fangbereich"; +VAL_ 976 FT_FH_Block 0 "Init" 1 "Fenster_Block"; +VAL_ 976 FT_FH_Thermo 0 "Init" 1 "Thermoschutz_aktiv"; +VAL_ 976 FT_UEKB_aktiviert 0 "Init" 1 "UEKB_aktiv"; +VAL_ 976 ASW_HMI_defekt 0 "iO" 1 "defekt"; +VAL_ 976 FT_FH_normiert 0 "Init" 1 "Fenster_normiert"; +VAL_ 976 FT_Schliesstaster 1 "Schliesstaster_betaetigt"; +VAL_ 976 FT_Zuziehhilfe_aktiv 0 "Init" 1 "Zuziehilfe_aktiv"; +VAL_ 976 FT_SP_ausgerastet 0 "Init" 1 "Spiegel_ausgerastet"; +VAL_ 976 FT_SP_lr_aktiv 0 "Init" 1 "Spiegel_xAchse_aktiv"; +VAL_ 976 FT_SP_ht_aktiv 0 "Init" 1 "Spiegel_yAchse_aktiv"; +VAL_ 976 ASW_wakeup 0 "Sleep" 1 "Wakeup"; +VAL_ 976 FT_Oben_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_o"; +VAL_ 976 FT_Unten_Block_erw 0 "Fensterheber_nicht_in_Blockerwar" 1 "Fensterheber_in_Blockerwartung_u"; +VAL_ 976 FT_Kisi_li_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 976 FT_Kisi_re_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 976 FT_Kisi_Taster_li 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 976 FT_Kisi_Taster_re 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 976 FT_BFS_Fond_Freigabe 0 "Init" 1 "Freigabe_fuer_Fondbedienung_BFS"; +VAL_ 976 FT_Kisi_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 976 FT_Daemmglas 0 "Normalglas_verbaut" 1 "Daemmglas_verbaut"; +VAL_ 976 FT_SP_Heizung_Status 0 "Init" 1 "Status_Spiegelheizung_ein"; +VAL_ 976 ASW_Warnung_aktiv_FS 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 976 FT_FH_Pos_oben 1 "Scheibe oben (nach Absenken auf Position)"; +VAL_ 976 FT_Tuerschloss_defekt 0 "Tuerschloss_funktionsfaehig" 1 "Tuerschloss_defekt"; +VAL_ 976 FT_SWA_Taster 0 "Taster_nicht_betaetigt" 1 "Taster_betaetigt"; +VAL_ 976 SWA_HMI_Diagnose 0 "kein_Fehler_erkannt" 1 "Fehler_Taster_erkannt" 2 "Fehler_LED_erkannt" 3 "Fehler_LED_und_Taster_erkannt"; +VAL_ 976 FS_Status_eTAG 0 "Init" 1 "Griff_ausgefahren" 2 "Griff_eingefahren" 3 "Fehler"; +VAL_ 980 BH_Blinker_li 0 "nicht_betaetigt" 1 "Blinkerhebel_Pos_li_betaetigt"; +VAL_ 980 BH_Blinker_re 0 "nicht_betaetigt" 1 "Blinkerhebel_Pos_re_betaetigt"; +VAL_ 980 BH_Lichthupe 0 "nicht_betaetigt" 1 "Blinkerhebel in Richtung Lichthupe betaetigt"; +VAL_ 980 BH_Fernlicht 0 "nicht_betaetigt" 1 "Blinkerhebel_in_Richtung_Fernlicht_betaetigt"; +VAL_ 980 WH_Tipwischen 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 980 WH_Intervall 0 "aus" 1 "Wischerhebel in Stellung Intervall"; +VAL_ 980 WH_WischerStufe1 0 "aus" 1 "Wischerhebel in Stufe Wischen 1"; +VAL_ 980 WH_WischerStufe2 0 "aus" 1 "Wischerhebel in Stufe Wischen 2"; +VAL_ 980 WH_Frontwaschen 0 "aus" 1 "Wischerhebel in Stellung Wisch Wasch vorne"; +VAL_ 980 WH_Heckintervall 0 "nicht_betaetigt" 1 "Wischerhebel in Stellung Heckintervall"; +VAL_ 980 WH_Heckwaschen 0 "nicht_betaetigt" 1 "Wischerhebel in Stellung Wisch Wasch hinten"; +VAL_ 980 WH_Intervallstufen 0 "Init / Default" 1 "Intervallstufe 1" 5 "Intervallstufe 2" 9 "Intervallstufe 3" 13 "Intervallstufe 4" 15 "Fehler"; +VAL_ 980 FAS_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 980 FAS_Taster_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 980 SMLS_Hupe 0 "nicht_betaetigt" 1 "Hupe_gedrueckt"; +VAL_ 980 LRH_On_Off 0 "LRH_aus__keine Anzeige" 1 "LRH_aus" 2 "LRH_ein" 3 "Fehler"; +VAL_ 980 LRH_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 980 SMLS_P_verriegelt_plausibel 0 "unplausibel" 1 "plausibel"; +VAL_ 980 WH_SRA 0 "SRA_Aus" 1 "SRA_Ein"; +VAL_ 980 WH_Wischer_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 980 BH_Blinker_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 980 SMLS_PTT 0 "nicht_betaetigt" 1 "PTT_gedrueckt"; +VAL_ 980 WH_Tipwischen_lang 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 981 BCM1_Kurvenlicht_links_Anf 0 "linkes_Kurvenlicht/Abbiegelicht_durch_BCM1_nicht_angesteuert" 1 "linkes_Kurven/Abbiegelicht_durch_BCM1_angesteuert"; +VAL_ 981 BCM1_Kurvenlicht_rechts_Anf 0 "rechtes_Kurvenlicht/Abbiegelicht_durch_BCM1_nicht_angesteuert" 1 "rechtes_Kurvenlicht/Abbiegelicht_durch_BCM1_angesteuert"; +VAL_ 981 BCM1_Standlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Abblendlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Fernlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Nebellicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Parklicht_li_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Parklicht_re_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Nebelschluss_Ahg_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Nebelschluss_Fzg_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Schlusslicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM_Rueckfahrlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht_angefordert"; +VAL_ 981 BCM1_Signaturlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht_ist_einzuschalten"; +VAL_ 981 BCM1_Umfeldleuchten_Anf 0 "Licht_nicht_angefordert" 1 "Licht_ist_einzuschalten"; +VAL_ 981 BCM1_Tagfahrlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Regenlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Autobahnlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht ist einzuschalten"; +VAL_ 981 BCM1_Touristen_Licht_Anf 0 "Licht_nicht_angefordert" 1 "Anforderung von Touristenlicht"; +VAL_ 981 BCM1_CH_aktiv 0 "Inaktiv" 1 "Aktiv"; +VAL_ 981 BCM1_LH_aktiv 0 "Inaktiv" 1 "Aktiv"; +VAL_ 981 BCM1_Gleitende_Leuchtw_Anf 0 "Aus" 1 "Ein"; +VAL_ 981 BCM1_GLW_Fernlicht_Anf 0 "Aus" 1 "Ein"; +VAL_ 981 BCM1_Adaptive_Lichtvert_Anf 0 "Aus" 1 "Ein"; +VAL_ 981 BCM1_FoD_Sperrung_WiBli 0 "Freigabe_WiBli" 1 "Sperrung_WiBli" 2 "Init"; +VAL_ 981 BCM1_FOD_Sperrung_Animationen_HL 0 "Freigabe_Animationen" 1 "Sperrung_Animationen" 2 "Init"; +VAL_ 981 BCM1_Animationssperrung 0 "keine_Sperrung" 1 "Sperrung"; +VAL_ 981 BCM1_CH_LH_aktiv 0 "Comming_Home_Bzw._Leaving_Home_nicht_aktiv" 1 "Comming Home bzw. Leaving Home aktiv"; +VAL_ 981 BCM1_Allwetterlicht_Anf 0 "Licht_nicht_angefordert" 1 "Licht_ist_einzuschalten"; +VAL_ 981 BCM1_Schlusslicht_Signatur 0 "keine_Signatur" 1 "Signatur_1" 2 "Signatur_2" 3 "Signatur_3" 4 "Signatur_4" 5 "Signatur_5" 6 "Signatur_6" 7 "Signatur_7" 8 "Signatur_8" 9 "Signatur_9" 10 "Signatur_10" 11 "Signatur_11" 12 "Signatur_12" 13 "Signatur_13" 14 "Signatur_14" 15 "Signatur_15"; +VAL_ 982 BCM2_Bremsl_durch_ECD 0 "Bremslicht_ist_aus" 1 "Bremslicht_durch_ECD_aktiv"; +VAL_ 982 LH_Aussenlicht_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Standlicht_H_aktiv 1 "Standlicht hinten aktiv"; +VAL_ 982 LH_Parklicht_HL_aktiv 0 "nicht aktiv" 1 "Parklicht hinten links aktiv"; +VAL_ 982 LH_Parklicht_HR_aktiv 0 "nicht aktiv" 1 "Parklicht hinten rechts aktiv"; +VAL_ 982 LH_Bremslicht_H_aktiv 1 "Bremslicht hinten aktiv"; +VAL_ 982 LH_Nebelschluss_aktiv 0 "nicht aktiv" 1 "aktiv"; +VAL_ 982 LH_Rueckfahrlicht_aktiv 0 "nicht aktiv" 1 "aktiv"; +VAL_ 982 LH_Blinker_HL_akt 1 "Blinker hinten links aktiv"; +VAL_ 982 LH_Blinker_HR_akt 1 "Blinker hinten rechts aktiv"; +VAL_ 982 LH_Blinker_li_def 0 "OK" 1 "Blinker hinten links defekt"; +VAL_ 982 LH_Bremsl_li_def 0 "OK" 1 "mindestens ein Bremslicht hinten links defekt"; +VAL_ 982 LH_Schlusslicht_li_def 0 "OK" 1 "mindestens ein Schlusslicht hinten links defekt"; +VAL_ 982 LH_Rueckf_li_def 0 "OK" 1 "Rückfahrlicht hinten links defekt"; +VAL_ 982 LH_Nebel_li_def 0 "OK" 1 "Nebelschlusslicht hinten links defekt"; +VAL_ 982 LH_Schluss_Brems_Nebel_li_def 0 "iO" 1 "defekt"; +VAL_ 982 LH_Schluss_Brems_Nebel_re_def 0 "iO" 1 "defekt"; +VAL_ 982 LH_Zusatzschlussl_def 0 "OK" 1 "mindestens_ein_Zusatzschlusslicht_defekt"; +VAL_ 982 LH_Schluss_Brems_li_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Schluss_Nebel_li_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_SL_BRL_BLK_li_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Brems_Blk_li_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Diag_Status_re_def 0 "OK" 1 "Aussenlict_Diagnose_Systemstoerung_rechts"; +VAL_ 982 LH_Diag_Status_li_def 0 "OK" 1 "Aussenlicht_Diagnose_Systemstoerung_links"; +VAL_ 982 LH_Diag_LED_li_def 0 "OK" 1 "Heckleuchte_links_defekt"; +VAL_ 982 LH_Diag_LED_re_def 0 "OK" 1 "Heckleuchte_rechts_defekt"; +VAL_ 982 LH_Blinker_re_def 0 "OK" 1 "Blinker hinten rechts defekt"; +VAL_ 982 LH_Bremsl_re_def 0 "OK" 1 "mindestens ein Bremslicht hinten rechts defekt"; +VAL_ 982 LH_Schlusslicht_re_def 0 "OK" 1 "mindestens ein Schlusslicht hinten rechts defekt"; +VAL_ 982 LH_Rueckf_re_def 0 "OK" 1 "Rückfahrlicht hinten rechts defekt"; +VAL_ 982 LH_Nebel_re_def 0 "OK" 1 "Nebelschlusslicht hinten rechts defekt"; +VAL_ 982 LH_Schluss_Brems_mi_def 0 "OK" 1 "Defekt"; +VAL_ 982 LH_Schluss_Brems_re_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Schluss_Nebel_re_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_SL_BRL_BLK_re_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Brems_Blk_re_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Kennzl_def 0 "OK" 1 "Kennzeichenbeleuchtung hinten defekt"; +VAL_ 982 LH_3_Bremsl_def 0 "OK" 1 "hochgesetzte Bremsleuchte defekt"; +VAL_ 982 LH_Nebel_mi_def 0 "OK" 1 "Nebelschlusslicht hinten Mitte defekt"; +VAL_ 982 LH_Rueckf_mi_def 0 "OK" 1 "Rückfahllicht Mitte defekt"; +VAL_ 982 LH_Schlusslicht_mi_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Bremsl_mi_def 0 "OK" 1 "defekt"; +VAL_ 982 LH_Bremsl_li_ges_def 0 "OK" 1 "Alle Bremslichter hinten links defekt"; +VAL_ 982 LH_Bremsl_re_ges_def 0 "OK" 1 "Alle Bremslichter hinten rechts defekt"; +VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt"; +VAL_ 997 FT_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 997 FT_Tuer_Status_QBit 0 "Status_Tuerkontakt_sicher" 1 "Status_Tuerkontakt_unsicher"; +VAL_ 997 FT_Lock_Taster_02 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 997 FT_Schluesselschalter_zu_02 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 997 FT_BFS_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 997 FT_HBFS_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 997 FT_HFS_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; +VAL_ 997 FT_Tueroeffnen_Warnung 0 "Tuerwarnung_nicht_aktiv" 1 "Tuerwarnung_aktiv"; +VAL_ 997 FT_SP_Heizung_ein 0 "Aus" 1 "Ein"; +VAL_ 997 FT_Kisi_Taster_li_02 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 997 FT_Kisi_Taster_re_02 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 997 FT_TD_Taste_Status 0 "kein_Fehler" 1 "Kurzschluss_nach_Minus" 2 "Kurzschluss_nach_Plus" 3 "Leitungsunterbrechung"; +VAL_ 997 FT_TCR_Mode_aktiv 0 "TCR_Mode_deaktiv" 1 "TCR_Mode_aktiv"; +VAL_ 997 FS_Push_Tuergriff 0 "nicht_erkannt" 1 "erkannt"; VAL_ 1004 TSK_State 0 "init" 1 "disabled" 2 "enabled" 3 "regulating" 4 "accel_pedal_override" 5 "brake_only" 6 "temp_fault" 7 "perm_fault"; -VAL_ 1124 PSD_06_Mux 0 "Init" ; -VAL_ 1124 PSD_Sys_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig" ; -VAL_ 1124 PSD_Attribut_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; -VAL_ 1124 PSD_Ges_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig" ; -VAL_ 1124 PSD_Baum_Laenge_VZ 0 "Ost" 1 "West" ; -VAL_ 1124 PSD_Steigung_1_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; -VAL_ 1124 PSD_Baum_Laenge 33554431 "keine_GPS_Information" ; -VAL_ 1124 PSD_Attribut_3_ID 0 "keine_Information" ; -VAL_ 1124 PSD_Steigung_1_A_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit 0 "Kein Geschwindigkeitsgebot" 1 "0 km/h < v_max < 5 km/h" 2 "5 km/h < v_max < 10km/h" 3 "10 km/h < v_max < 15 km/h" 4 "15 km/h < v_max < 20 km/h" 5 "20 km/h < v_max < 25 km/h" 6 "25 km/h < v_max < 30 km/h" 7 "30 km/h < v_max < 35 km/h" 8 "35 km/h < v_max < 40 km/h" 9 "40 km/h < v_max < 45 km/h" 10 "45 km/h < v_max < 50 km/h" 11 "50 km/h < v_max < 60 km/h" 12 "60 km/h < v_max < 70 km/h" 13 "70 km/h < v_max < 80 km/h" 14 "80 km/h < v_max < 90 km/h" 15 "90 km/h < v_max < 100 km/h" 16 "100 km/h < v_max < 110 km/h" 17 "110 km/h < v_max < 120 km/h" 18 " 120 km/h < v_max < 130 km/h" 19 "130 km/h < v_max < 140 km/h" 20 "140 km/h < v_max < 150 km/h" 21 "150 km/h < v_max < 160 km/h" 22 "160 km/h < v_max" 23 "Geschwindigkeitsgebot aufgehoben" 24 "..0x1F ung�ltig" ; -VAL_ 1124 PSD_Steigung_1_A_Vorz 0 "Gefaelle" 1 "Steigung" ; -VAL_ 1124 PSD_Sys_Geschwindigkeit_Einheit 0 "km/h" 1 "mph" ; -VAL_ 1124 PSD_Sys_Verkehrsrichtung 0 "Rechtsverkehr" 1 "Linksverkehr" ; -VAL_ 1124 PSD_Sys_Geometrieguete 0 "Geringe_Guete" 1 "tbd" 2 "tbd" 3 "Hohe_Guete" ; -VAL_ 1124 PSD_Sys_Mapmatchingguete 0 "geringe_Guete" 1 "res" 2 "res" 3 "hohe_Guete" ; -VAL_ 1124 PSD_Ges_Typ 0 "Geschw_Klasse_des_Kartendatensuppliers" 1 "Explizit_abgeleiteten_Begrenzung" 2 "Durch_Gesetzg_vorgeg_allgem_Gebot_fuer_uebertr_Rahmenbed" 3 "Init" ; -VAL_ 1124 PSD_Sys_Alter_Karte 0 "kleiner_1_Jahr" 1 "1_Jahr" 2 "2_Jahre" 3 "3_Jahre" 4 "4_Jahre" 5 "5_Jahre" 6 "6_Jahre" 7 "groesser_7_Jahre" ; -VAL_ 1124 PSD_Ges_Spur_Geschw_Begrenzung 0 "Gebot_fuer_alle_spuren_gueltig" ; -VAL_ 1124 PSD_Steigung_1_B_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; -VAL_ 1124 PSD_Attribut_4_ID 0 "keine_Information" ; -VAL_ 1124 PSD_Sys_Zielfuehrung 0 "Zielfuehrung nicht aktiv" 1 "Zielfuehrung aktiv" ; -VAL_ 1124 PSD_Sys_US_State 0 "kein_US_State" 1 "Alabama" 2 "Alaska" 3 "Arkansas" 4 "Arizona" 5 "California" 6 "Colorado" 7 "Conneticut" 8 "District_of_Columbia" 9 "Delaware" 10 "Florida" 11 "Georgia" 12 "Hawaii" 13 "Idaho" 14 "Illinois" 15 "Iowa" 16 "Indiana" 17 "Kansas" 18 "Kentucky" 19 "Louisiana" 20 "Massachusetts" 21 "Maryland" 22 "Maine" 23 "Michigan" 24 "Minnesota" 25 "Missouri" 26 "Mississippi" 27 "Montana" 28 "North_Carolina" 29 "North_Dakota" 30 "Nebraska" 31 "Nevada" 32 "New_Hampshire" 33 "New_Jersey" 34 "New_Mexico" 35 "New_York" 36 "Ohio" 37 "Oklahoma" 38 "Oregon" 39 "Pennsylvania" 40 "Puerto_Rico" 41 "Rhode_Island" 42 "South_Carolina" 43 "South_Dakota" 44 "Tennessee" 45 "Texas" 46 "Utah" 47 "Virginia" 48 "Virgin_Islands" 49 "Vermont" 50 "Washington" 51 "Wisconsin" 52 "West_Virginia" 53 "Wyoming" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Gespann 0 "alle Fahrzeuge" 1 "PKW mit Gespann" 2 "LKW, Busse, etc." ; -VAL_ 1124 PSD_Baum_Breite_VZ 0 "Nord" 1 "Sued" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Witter 0 "Witterungsunabh�ngig" 1 "N�sse, Regen, Niederschlag" 2 "Gl�tte" 3 "Nebel" ; -VAL_ 1124 PSD_Steigung_1_B_Vorz 0 "Gefaelle" 1 "Steigung" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Anf 0 "kein Beginn definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Ende 0 "kein Ende definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag" ; -VAL_ 1124 PSD_Sys_Quali_verfuegbar 0 "Qualitaetskriterien_nicht_verfuegbar" 1 "Qualitaetskriterien_verfuegbar" ; -VAL_ 1124 PSD_Sys_Zielfuehrung_geaendert 0 "Zielfuehrung_nicht_geaendert" 1 "Zielfuehrung_geaendert" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Anf 25 "kein Beginn f�r stundenweise Einschr�nkungen" ; -VAL_ 1124 PSD_Steigung_1_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett" ; -VAL_ 1124 PSD_Sys_Geometrieguete_erweitert 0 "Init" ; -VAL_ 1124 PSD_Steigung_2_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler" ; -VAL_ 1124 PSD_Attribut_5_ID 0 "keine_Information" ; -VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Ende 25 "kein Ende f�r stundenweise Einschr�nkungen" ; -VAL_ 1124 PSD_Steigung_2_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt" ; -VAL_ 1124 PSD_Ges_Ueberholverbot 0 "kein �berholverbot" 1 "alle Fahrzeuge" 2 "�berholverbot f�r PKW mit Gespann" 3 "�berholverbot f�r LKW, Busse, etc." ; -VAL_ 1124 PSD_Ges_Wechselverkehrszeichen 0 "Kein Wechselverkehrszeichen" 1 "Wechselverkehrszeichen links" 2 "Wechselverkehrszeichen rechts" 3 "Wechselverkehrszeichen links und rechts" 4 "Wechselverkerhszeichen �ber der Fahrbahn" ; -VAL_ 1124 PSD_Steigung_2_Vorz 0 "Gefaelle" 1 "Steigung" ; -VAL_ 1124 PSD_Wechselverkehrszeichen_Typ 0 "kein_Wechselverkehrszeichen" 1 "LED_Wechselverkehrszeichen" 2 "nicht_LED_Wechselverkehrszeichen" ; -VAL_ 1124 PSD_Ges_Gesetzlich_Kategorie 0 "kein_legales_Verbot" 1 "innerorts" 2 "ausserorts" 3 "Autobahn" ; -VAL_ 1124 PSD_Attribute_Komplett_06 0 "Attribute_nicht_komplett" 1 "Attribute_komplett" ; -VAL_ 1124 PSD_Ges_Gesetzlich_Zusatz 0 "kein_Zusatz_zu_legalem_Gebot" 1 "Anhaenger_Klasse_1" 2 "Anhaenger_Klasse_2" ; -VAL_ 1124 PSD_Ges_Verkehrszeichen_Quelle 0 "VZA_kein_Onlinedienst" 1 "nur_VZA" 2 "nur_VZO" 3 "VZA_und_VZO" ; -VAL_ 1124 PSD_Steigung_2_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett" ; -VAL_ 1124 PSD_Ges_Attribute_Komplett 0 "Attribute_nicht_komplett" 1 "Attribute_komplett" ; -VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 1631 TSK_QBit_Fahrzeugmasse 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert" ; -VAL_ 1631 MO_SpannungsAnf_02 0 "keine_Anforderung" 1 "Anforderung_Stufe_1" 2 "Anforderung_Stufe_2" 3 "Anforderung_Stufe_3" ; -VAL_ 1631 MO_DPF_reg 0 "DPF_regeneriert_nicht" 1 "DPF_regeneriert" ; -VAL_ 1631 MO_Heizstrom_EKAT 127 "Fehler" ; -VAL_ 1631 MO_Heizstrom_SCR 63 "Fehler" ; -VAL_ 1631 MO_Anzeige_Kaltleuchte 0 "Lampe_aus" 1 "Lampe_an" ; -VAL_ 1631 MO_P_Generator_ungefiltert_Anf 0 "nicht_angefordert" 1 "angefordert" ; -VAL_ 1631 TSK_Getriebeinfo 0 "Handschalter" 1 "AL_AQ_Getriebe" 2 "DL_DQ_Getriebe" 3 "CVT_Getriebe" ; -VAL_ 1631 MO_Energieinhalt_BMS 4094 "Init" 4095 "Fehler" ; -VAL_ 1631 TSK_Fahrzeugmasse_02 255 "Fehler" ; -VAL_ 1631 TSK_Steigung_02 0 "Init_oder_nicht_verbaut" 255 "Fehler" ; +VAL_ 1122 PSD_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "Fehlerwert"; +VAL_ 1122 PSD_Vorgaenger_Segment_ID 0 "keine Segmentinformation vorhanden" 1 "Fehlerwert"; +VAL_ 1122 PSD_Strassenkategorie 0 "Rest_Feldweg_Schotterweg_Privatweg" 1 "Ortsstraߥ" 2 "Kreisstraߥ" 3 "Landstraߥ" 4 "Bundesstraߥ" 5 "Autobahn" 7 "Init"; +VAL_ 1122 PSD_Endkruemmung 255 "Gerade"; +VAL_ 1122 PSD_Endkruemmung_Vorz 0 "Kruemmung_positiv" 1 "Kruemmung_negativ"; +VAL_ 1122 PSD_Idenditaets_ID 0 "keine_Segment_Informationen_vorhanden" 1 "Fehler"; +VAL_ 1122 PSD_ADAS_Qualitaet 0 "keine_ADAS_Qualitaet" 1 "ADAS_Qualitaet"; +VAL_ 1122 PSD_wahrscheinlichster_Pfad 0 "Pfad_mit_geringer_Wahrscheinlichkeit" 1 "wahrscheinlichster_Pfad"; +VAL_ 1122 PSD_Geradester_Pfad 0 "nicht_geradester_PFad" 1 "geradester_Pfad"; +VAL_ 1122 PSD_Fahrspuren_Anzahl 0 "Einbahnstrasse_in_falsche_Richtung" 1 "eine_Fahrspur" 2 "zwei_Fahrspuren" 3 "drei_Fahrspuren" 4 "vier_Fahrspuren" 5 "fuenf_Fahrspuren" 6 "sechs_Fahrspuren" 7 "mehr_als_sechs_Fahrspuren"; +VAL_ 1122 PSD_Bebauung 0 "ausserhalb_bebauten_Gebietes" 1 "innerhalb_bebauten_Gebietes"; +VAL_ 1122 PSD_Segment_Komplett 0 "Segment_Attribute_nicht_komplett" 1 "Segment_Attribute_komplett"; +VAL_ 1122 PSD_Rampe 0 "Strasse_mit_Gegenverkehr" 1 "Auffahrt_Einbahnstr" 2 "Abfahrt_Einbahnstr" 3 "Einbahnstrasse"; +VAL_ 1122 PSD_Anfangskruemmung 255 "Gerade"; +VAL_ 1122 PSD_Anfangskruemmung_Vorz 0 "positiv" 1 "negativ"; +VAL_ 1122 PSD_Abzweigerichtung 0 "rects_abzweigende_Strasse" 1 "links_abzweigende_Strasse"; +VAL_ 1123 PSD_Pos_Segment_ID 0 "keine Position gegeben" 1 "Fehlerwert"; +VAL_ 1123 PSD_Pos_Standort_Eindeutig 0 "mehrdeutiger_Standort" 1 "eindeutiger_Standort"; +VAL_ 1123 PSD_Pos_Fehler_Laengsrichtung 0 "Init" 1 "< 2m" 2 "< 5m" 3 "< 10m" 4 "< 20m" 5 "< 50m" 6 "> 50m" 7 "Off-Road"; +VAL_ 1123 PSD_Pos_Fahrspur 0 "unbekannt" 1 "Erste_Spur_von_rechts" 2 "Zweite_Spur_von_rechts" 3 "Dritte_Spur_von_rechts" 4 "Vierte_Spur_von_rechts" 5 "Fuenfte_Spur_von_rechts" 6 "Sechte_Spur_von_rechts" 7 "Siebte_oder_weitere_Spur_von_rechts"; +VAL_ 1123 PSD_Attribut_Segment_ID_05 0 "keine_Segment_Information" 1 "Fehler"; +VAL_ 1123 PSD_Attribut_1_ID 0 "keine_Information"; +VAL_ 1123 PSD_Attribut_2_ID 0 "keine_Information"; +VAL_ 1123 PSD_Attribute_Komplett_05 0 "Attribute_nicht_komplett" 1 "Attribute_komplett"; +VAL_ 1124 PSD_06_Mux 0 "Init"; +VAL_ 1124 PSD_Sys_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig"; +VAL_ 1124 PSD_Sys_Geschwindigkeit_Einheit 0 "km/h" 1 "mph"; +VAL_ 1124 PSD_Sys_Verkehrsrichtung 0 "Rechtsverkehr" 1 "Linksverkehr"; +VAL_ 1124 PSD_Sys_Geometrieguete 0 "Geringe_Guete" 1 "tbd" 2 "tbd" 3 "Hohe_Guete"; +VAL_ 1124 PSD_Sys_Mapmatchingguete 0 "geringe_Guete" 1 "res" 2 "res" 3 "hohe_Guete"; +VAL_ 1124 PSD_Sys_Alter_Karte 0 "kleiner_1_Jahr" 1 "1_Jahr" 2 "2_Jahre" 3 "3_Jahre" 4 "4_Jahre" 5 "5_Jahre" 6 "6_Jahre" 7 "groesser_7_Jahre"; +VAL_ 1124 PSD_Sys_Zielfuehrung 0 "Zielfuehrung nicht aktiv" 1 "Zielfuehrung aktiv"; +VAL_ 1124 PSD_Sys_US_State 0 "kein_US_State" 1 "Alabama" 2 "Alaska" 3 "Arkansas" 4 "Arizona" 5 "California" 6 "Colorado" 7 "Conneticut" 8 "District_of_Columbia" 9 "Delaware" 10 "Florida" 11 "Georgia" 12 "Hawaii" 13 "Idaho" 14 "Illinois" 15 "Iowa" 16 "Indiana" 17 "Kansas" 18 "Kentucky" 19 "Louisiana" 20 "Massachusetts" 21 "Maryland" 22 "Maine" 23 "Michigan" 24 "Minnesota" 25 "Missouri" 26 "Mississippi" 27 "Montana" 28 "North_Carolina" 29 "North_Dakota" 30 "Nebraska" 31 "Nevada" 32 "New_Hampshire" 33 "New_Jersey" 34 "New_Mexico" 35 "New_York" 36 "Ohio" 37 "Oklahoma" 38 "Oregon" 39 "Pennsylvania" 40 "Puerto_Rico" 41 "Rhode_Island" 42 "South_Carolina" 43 "South_Dakota" 44 "Tennessee" 45 "Texas" 46 "Utah" 47 "Virginia" 48 "Virgin_Islands" 49 "Vermont" 50 "Washington" 51 "Wisconsin" 52 "West_Virginia" 53 "Wyoming"; +VAL_ 1124 PSD_Sys_Quali_verfuegbar 0 "Qualitaetskriterien_nicht_verfuegbar" 1 "Qualitaetskriterien_verfuegbar"; +VAL_ 1124 PSD_Sys_Zielfuehrung_geaendert 0 "Zielfuehrung_nicht_geaendert" 1 "Zielfuehrung_geaendert"; +VAL_ 1124 PSD_Sys_Geometrieguete_erweitert 0 "Init"; +VAL_ 1124 PSD_Attribut_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler"; +VAL_ 1124 PSD_Attribut_3_ID 0 "keine_Information"; +VAL_ 1124 PSD_Attribut_4_ID 0 "keine_Information"; +VAL_ 1124 PSD_Attribut_5_ID 0 "keine_Information"; +VAL_ 1124 PSD_Attribute_Komplett_06 0 "Attribute_nicht_komplett" 1 "Attribute_komplett"; +VAL_ 1124 PSD_Ges_Segment_ID 0 "keine Segmentinformationen vorhanden" 1 "nicht zulaessig"; +VAL_ 1124 PSD_Ges_Geschwindigkeit 0 "Kein Geschwindigkeitsgebot" 1 "0 km/h < v_max < 5 km/h" 2 "5 km/h < v_max < 10km/h" 3 "10 km/h < v_max < 15 km/h" 4 "15 km/h < v_max < 20 km/h" 5 "20 km/h < v_max < 25 km/h" 6 "25 km/h < v_max < 30 km/h" 7 "30 km/h < v_max < 35 km/h" 8 "35 km/h < v_max < 40 km/h" 9 "40 km/h < v_max < 45 km/h" 10 "45 km/h < v_max < 50 km/h" 11 "50 km/h < v_max < 60 km/h" 12 "60 km/h < v_max < 70 km/h" 13 "70 km/h < v_max < 80 km/h" 14 "80 km/h < v_max < 90 km/h" 15 "90 km/h < v_max < 100 km/h" 16 "100 km/h < v_max < 110 km/h" 17 "110 km/h < v_max < 120 km/h" 18 "120 km/h < v_max < 130 km/h" 19 "130 km/h < v_max < 140 km/h" 20 "140 km/h < v_max < 150 km/h" 21 "150 km/h < v_max < 160 km/h" 22 "160 km/h < v_max" 23 "Geschwindigkeitsgebot aufgehoben" 24 "..0x1F ungültig"; +VAL_ 1124 PSD_Ges_Typ 0 "Geschw_Klasse_des_Kartendatensuppliers" 1 "Explizit_abgeleiteten_Begrenzung" 2 "Durch_Gesetzg_vorgeg_allgem_Gebot_fuer_uebertr_Rahmenbed" 3 "Init"; +VAL_ 1124 PSD_Ges_Spur_Geschw_Begrenzung 0 "Gebot_fuer_alle_spuren_gueltig"; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Gespann 0 "alle Fahrzeuge" 1 "PKW mit Gespann" 2 "LKW, Busse, etc."; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Witter 0 "Witterungsunabh䮧ig" 1 "N䳳e, Regen, Niederschlag" 2 "Gl䴴e" 3 "Nebel"; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Anf 0 "kein Beginn definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag"; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Tag_Ende 0 "kein Ende definiert" 1 "Montag" 2 "Dienstag" 3 "Mittwoch" 4 "Donnerstag" 5 "Freitag" 6 "Samstag" 7 "Sonntag"; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Anf 25 "kein Beginn für stundenweise Einschr䮫ungen"; +VAL_ 1124 PSD_Ges_Geschwindigkeit_Std_Ende 25 "kein Ende für stundenweise Einschr䮫ungen"; +VAL_ 1124 PSD_Ges_Ueberholverbot 0 "kein ܢerholverbot" 1 "alle Fahrzeuge" 2 "ܢerholverbot für PKW mit Gespann" 3 "ܢerholverbot für LKW, Busse, etc."; +VAL_ 1124 PSD_Ges_Wechselverkehrszeichen 0 "Kein Wechselverkehrszeichen" 1 "Wechselverkehrszeichen links" 2 "Wechselverkehrszeichen rechts" 3 "Wechselverkehrszeichen links und rechts" 4 "Wechselverkerhszeichen über der Fahrbahn"; +VAL_ 1124 PSD_Wechselverkehrszeichen_Typ 0 "kein_Wechselverkehrszeichen" 1 "LED_Wechselverkehrszeichen" 2 "nicht_LED_Wechselverkehrszeichen"; +VAL_ 1124 PSD_Ges_Gesetzlich_Kategorie 0 "kein_legales_Verbot" 1 "innerorts" 2 "ausserorts" 3 "Autobahn"; +VAL_ 1124 PSD_Ges_Gesetzlich_Zusatz 0 "kein_Zusatz_zu_legalem_Gebot" 1 "Anhaenger_Klasse_1" 2 "Anhaenger_Klasse_2"; +VAL_ 1124 PSD_Ges_Verkehrszeichen_Quelle 0 "VZA_kein_Onlinedienst" 1 "nur_VZA" 2 "nur_VZO" 3 "VZA_und_VZO"; +VAL_ 1124 PSD_Ges_Attribute_Komplett 0 "Attribute_nicht_komplett" 1 "Attribute_komplett"; +VAL_ 1124 PSD_Baum_Laenge_VZ 0 "Ost" 1 "West"; +VAL_ 1124 PSD_Baum_Breite_VZ 0 "Nord" 1 "Sued"; +VAL_ 1124 PSD_Steigung_1_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler"; +VAL_ 1124 PSD_Steigung_1_A_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt"; +VAL_ 1124 PSD_Steigung_1_A_Vorz 0 "Gefaelle" 1 "Steigung"; +VAL_ 1124 PSD_Steigung_1_B_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt"; +VAL_ 1124 PSD_Steigung_1_B_Vorz 0 "Gefaelle" 1 "Steigung"; +VAL_ 1124 PSD_Steigung_1_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett"; +VAL_ 1124 PSD_Steigung_2_Segment_ID 0 "keine_Segment_Information_vorhanden" 1 "Fehler"; +VAL_ 1124 PSD_Steigung_2_Steigung 126 "mehr_als_15_Prozent" 127 "Steigung_unbekannt"; +VAL_ 1124 PSD_Steigung_2_Vorz 0 "Gefaelle" 1 "Steigung"; +VAL_ 1124 PSD_Steigung_2_Attribute_kompl 0 "Steigungen_nicht_komplett" 1 "Steigungen_komplett"; +VAL_ 1153 ZR_LoGeWa_Event_Kombiwarnung 0 "Init" 1 "Unfall" 2 "Traktionsverlust" 3 "Panne" 4 "Sichtbehinderung" 5 "Aquaplaning" 6 "EEBL" 7 "SEF_stat" 8 "SEF_dyn_allgemein" 9 "SEF_dyn_vorne" 10 "SEF_dyn_hinten" 11 "SEF_dyn_links" 12 "SEF_dyn_rechts" 13 "Stauende"; +VAL_ 1153 Nav_FoD_Status 0 "Init" 1 "Nav_permanently_available" 2 "FoD_Nav_not_activated" 3 "FoD_Nav_activated" 4 "R4N_Nav_not_activated"; +VAL_ 1153 MIB_Tongenerator_PH_verfuegbar 0 "Tongenerator_nicht_verfuegbar" 1 "Tongenerator_vorne_verfuegbar" 2 "Tongenerator_hinten_verfuegbar" 3 "Tongenerator_gesamt_verfuegbar" 4 "Tongenerator_im_AMP"; +VAL_ 1153 DSSS_Warning 0 "No_Warning" 1 "Red_traffic_light_guidance" 2 "Stop_sign_warning" 3 "Rear_end_collision_avoidance_warning" 4 "Intersection_collision_avoidance_warning_right" 5 "Intersection_collision_avoidance_warning_left" 6 "turn_right_collision_avoidance" 7 "turn_left_collision_avoidance" 8 "pedestrian_crossing_right" 9 "pedestrian_crossing_left" 10 "bicycle_collision_right" 11 "bicycle_collision_left"; +VAL_ 1153 ZR_Kindersicherung_RSE 0 "inaktiv" 1 "aktiv"; +VAL_ 1153 ZR_RSE_aktivieren 0 "inaktiv" 1 "aktiv"; +VAL_ 1153 MMI_SDS_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1153 MU_SecondDisplay 0 "Init" 1 "gueltige_Karte" 2 "ungueltiges_Signal" 3 "Nicht_Verbaut"; +VAL_ 1153 MMI_Telefon_aktiv 0 "Telefongespraech_nicht_aktiv" 1 "Telefongespraech_aktiv"; +VAL_ 1153 MMI_Gurt_Mic_ref 0 "Downlink_inaktiv" 1 "Downlink_aktiv"; +VAL_ 1153 ZR_Sta_Inszenierung 0 "Init" 1 "Inszenierung_deaktiviert" 2 "Inszenierung_Start" 3 "Inszenierung_Stop"; +VAL_ 1153 MMI_Gauges_active 0 "gauges_inactive" 1 "gauges_active"; +VAL_ 1153 ZR_MXB_Manoever_Ansage 0 "keine_Ansage" 1 "Ansage_ohne_Richtung" 2 "Ansage_rechte_Richtung" 3 "Ansage_linke_Richtung"; +VAL_ 1153 ZR_LAPP_Sondermodus_Status 0 "keine_Anforderung" 1 "Sondermodus_aktiv" 2 "Aktivierung_nicht_moeglich"; +VAL_ 1153 MMI_StartStopp_Info 0 "Stoppfreigabe" 1 "Stoppverbot" 2 "Startanforderung" 3 "Fehler"; +VAL_ 1153 ZR_Parken_Sondermodus 0 "Init" 1 "Sondermodus_aktiv" 2 "Sondermodus_nicht_verfuegbar" 3 "WLAN_aus" 4 "WLAN_auscodiert" 15 "keine_WLAN_HW"; +VAL_ 1153 ZR_Rundenbewertung 0 "Bewertung_nicht_aktiv" 1 "langsamer" 2 "gleich_schnell" 3 "schneller" 4 "reserviert" 5 "reserviert" 6 "reserviert" 7 "reserviert" 8 "reserviert" 9 "reserviert" 10 "reserviert" 11 "reserviert" 12 "reserviert" 13 "reserviert" 14 "Init" 15 "Funktion_nicht_verbaut"; +VAL_ 1153 ZR_Rundenfortschritt 254 "Init" 255 "Funktion_nicht_verbaut"; +VAL_ 1155 Mo_Powermeter_Grenze 4093 "OFF"; +VAL_ 1155 MO_Text_Aktivierung_Antrieb 0 "keine_Anzeige" 1 "Ladestecker_nicht_fahrbereit" 2 "erneute_Aktivierung_erforderlich" 3 "Warten_Antrieb_wird_aktiviert" 4 "zum_Fahren_Bremse_und_Fahrstufe" 5 "h2_Tankklappe_nicht_fahrbereit" 6 "zum_Starten_Bremse_treten" 7 "zum_Starten_Kupplung_treten" 15 "Init"; +VAL_ 1155 MO_Powermeter_Inszenierung_aktiv 0 "keine_Anzeige" 1 "Inszenierung_aktiv"; +VAL_ 1155 MO_Powermeter_Charge_Grenze 1022 "Init" 1023 "Fehler"; +VAL_ 1155 MO_Powermeter_Grenze_strategisch 4094 "Init" 4095 "Fehler"; +VAL_ 1155 MO_Powermeter_untere_E_Grenze 4094 "Init" 4095 "Fehler"; +VAL_ 1155 MO_Powermeter_obere_E_Grenze 4094 "Init" 4095 "Fehler"; +VAL_ 1175 PH_Visualisierung 0 "Aus" 1 "Angefragt" 2 "InAnzeige" 3 "Abgefordert" 6 "Init" 7 "Fehler"; +VAL_ 1175 PDC_Tonausgabe_Front 0 "kein_Ton" 1 "Intervallton_1" 2 "Intervallton_2" 3 "Intervallton_3" 4 "Intervallton_4" 5 "Intervallton_5" 6 "Dauerton" 7 "Fehlerton" 8 "RCTATon"; +VAL_ 1175 PDC_Tonausgabe_Heck 0 "kein_Ton" 1 "Intervallton_1" 2 "Intervallton_2" 3 "Intervallton_3" 4 "Intervallton_4" 5 "Intervallton_5" 6 "Dauerton" 7 "Fehlerton" 8 "Erstwarnton_hinten" 9 "RCTATon"; +VAL_ 1175 PH_nachtr_Stopp_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1175 PH_Abschaltursache 0 "keine, bzw. System aktiv" 1 "Abschaltung durch Herausnahme R-Gang" 2 "Abschaltung ueber Geschwindigkeit" 3 "Abschaltung ueber PDC-Taster" 4 "Abschaltung wegen PLA" 5 "Abschaltung durch KL 15 Bit = 0" 6 "tbd." 7 "Fehler-/gestört Zustand, System noch aktiv"; +VAL_ 1175 PH_Opt_Anzeige_V_ein 0 "optische Anzeige vorne nicht aktiv" 1 "optische Anzeige vorne aktiviert"; +VAL_ 1175 PH_Opt_Anzeige_H_ein 0 "Optische Anzeige aus" 1 "optische Anzeige hinten aktiviert"; +VAL_ 1175 PH_Opt_Anz_V_Hindernis 0 "optische Anzeige vorne meldet kein Hindernis" 1 "optische Anzeige vorne meldet Hindernis im Warnbereich"; +VAL_ 1175 PH_Opt_Anz_H_Hindernis 0 "optische Anzeige hinten meldet kein Hindernis" 1 "optische Anzeige hinten meldet Hindernis im Warnbereich"; +VAL_ 1175 PH_Tongeber_V_aktiv 0 "Tongeber vorne nicht aktiv" 1 "Tongeber vorne aktiv"; +VAL_ 1175 PH_Tongeber_H_aktiv 0 "Tongeber hinten nicht aktiv" 1 "Tongeber hinten aktiv"; +VAL_ 1175 PH_Tongeber_mute 0 "Tongeber nicht stummgeschaltet" 1 "Tongeber stummgeschaltet"; +VAL_ 1175 PH_Anf_Audioabsenkung 0 "Keine_Audioabsenkung" 1 "Anforderung_Audioabsenkung"; +VAL_ 1175 PH_Tongeber_H_verfuegbar 0 "nicht verfügbar" 1 "verfügbar"; +VAL_ 1175 PLA_Anf_Aufschaltung_RVC 0 "Keine_RVC_Aufschalteanf" 1 "RVC_Aufschalteanforderung"; +VAL_ 1175 PH_Taster 0 "Taster_nicht_gedrueckt" 1 "Taster_gedrueckt" 2 "reserviert" 3 "Fehler"; +VAL_ 1175 PH_Anf_Verdeck 0 "Verdeckbetrieb_freigegeben" 1 "Verdeckbetrieb_sperren" 2 "reserviert" 3 "reserviert"; +VAL_ 1175 PH_StartStopp_Info 0 "Motorlauf_nicht_notwendig_(Stoppfreigabe)" 1 "Motoranlauf_nicht_zwingend_notwendig_(Stoppverbot,keine_Startanforderung)" 2 "Motoranlauf_zwingend_notwendig_(Startanforderung)" 3 "Systemfehler"; +VAL_ 1175 PH_Stoermeldung 0 "keine_Anzeige_kein_Gong" 1 "Textmeldung_PDC_hinten_gestoert_mit_Gong" 2 "Textmeldung_PDC_hinten_gestoert_ohne_Gong" 3 "Textmeldung_PDC_vorn_gestoert_mit_Gong" 4 "Textmeldung_PDC_vorn_gestoert_ohne_Gong" 5 "Textmeldung_PDC_gestoert_mit_Gong" 6 "Textmeldung_PDC_gestoert_ohne_Gong" 7 "Textmeldung_PDC_seitlich_gestoert_mit_Gong" 8 "Textmeldung_PDC_seitlich_gestoert_ohne_Gong"; +VAL_ 1175 PH_defekt 0 "PH aktiv" 1 "PH wurde aufgrund eines Defektes deaktiviert"; +VAL_ 1175 PH_gestoert 0 "PH aktiv" 1 "PH wurde auf Grund einer Stoerung tempraer deaktiviert"; +VAL_ 1175 PH_Systemzustand 0 "Anlage aus" 1 "Anlage durch einlegen R-Gang aktiviert" 2 "Anlage manuell durch Taster aktiviert" 3 "Anlage automatisch aktiviert" 4 "Anlage durch ARA aktiviert" 6 "Init - Initialisierungsphase nach Kl. 15 ein / Reset" 7 "Fehler-/gestört Zustand, System noch aktiv"; +VAL_ 1175 PH_Display_Kundenwunsch 0 "Anzeige aus" 1 "Grafik" 2 "Rear View" 3 "automatisch"; +VAL_ 1283 HVK_Istmodus_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1283 HVK_TN1_Sollmodus 0 "HV_Off" 1 "HV_On" 2 "reserviert" 3 "Initialisierung"; +VAL_ 1283 HVK_MO_EmSollzustand 0 "HvOff" 1 "HvStbyReq" 2 "HvStbyWait" 3 "HvBattOnReq" 4 "HvBattOnWait" 10 "HvOnIdle" 18 "HvOnDrvReq" 19 "HvOnDrvWait" 20 "HvOnDrvRdy" 28 "HvStepUpReq" 29 "HvStepUpWait" 30 "HvStepUp" 38 "HvStepDownReq" 39 "HvStepDownWait" 40 "HvStepDown" 46 "HvAcChPreReq" 47 "HvAcChPreWait" 48 "HvAcChReq" 49 "HvAcChWait" 50 "HvAcCh" 56 "HvDcChPreReq" 57 "HvDcChPreWait" 58 "HvDcChReq" 59 "HvDcChWait" 60 "HvDcCh" 67 "HvChOffReq" 68 "HvChOffWait" 69 "HvOnIdleReq" 70 "HvOnIdleWait" 96 "HvCpntOffReq" 97 "HvCpntOffWait" 98 "HvBattOffReq" 99 "HvBattOffWait" 109 "HvDcDcFailOffReq" 110 "HvDcDcFail" 119 "HvElmOffReq" 120 "HvElmOff" 126 "HvFailCpntOffReq" 127 "HvFailCpntOffWait" 128 "HvFailBattOffReq" 129 "HvFailBattOffWait" 130 "HvFailBattOff" 138 "HvFailUCtlReq" 139 "HvFailUCtlWait" 140 "HvFailUCtl" 150 "HvEmgcyOff" 255 "Init"; +VAL_ 1283 HVK_BMS_Sollmodus 0 "HV_Off" 1 "HV_On" 3 "AC_Laden_erw" 4 "AC_Laden" 6 "DC_Laden" 7 "Init"; +VAL_ 1283 HVK_DCDC_Sollmodus 0 "Standby" 1 "HV_On_Vorladen" 2 "Tiefsetzen" 3 "Hochsetzen" 4 "Pruefpuls_12V" 7 "Initialisierung"; +VAL_ 1283 HVK_EKK_Sollmodus 0 "Keine_Freigabe" 1 "Freigabe" 2 "Freigabe_ausgesetzt" 7 "Init"; +VAL_ 1283 HVK_HVPTC_Sollmodus 0 "Keine_Freigabe" 1 "Freigabe" 2 "Freigabe_ausgesetzt" 7 "Init"; +VAL_ 1283 HVK_HVLM_Sollmodus 0 "keine_Freigabe" 1 "Freigabe_Lademanager" 2 "Vorladung_AC_Pfad" 7 "Init"; +VAL_ 1283 HVK_HV_Netz_Warnungen 0 "Keine_Warnung" 1 "Warntext_HV_Netz_Anf" 2 "Fehlertext_HV_Netz_Anf" 3 "Warnung_Kein_Wiederstart_moeglich"; +VAL_ 1283 HV_Bordnetz_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1283 HV_Bordnetz_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 1283 HVK_Gesamtst_Spgfreiheit 0 "Funktion_Init__ohne_Funktion" 1 "HV_System_spannungsfrei" 2 "HV_System_nicht_spannungsfrei" 3 "Fehler"; +VAL_ 1283 HVK_AktiveEntladung_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1283 HVK_Iso_Messung_Start 0 "keine_Messung" 1 "Messung_HV_Netz_1" 2 "Messung_HV_Netz_2" 4 "deaktiviert"; +VAL_ 1283 HVK_DCDC_EKK_Sollmodus 0 "aus" 1 "ein" 2 "reserviert" 3 "Init"; +VAL_ 1312 LoGeWa_Event_Kombiwarnung 0 "Init" 1 "Unfall" 2 "Traktionsverlust" 3 "Panne" 4 "Sichtbehinderung" 5 "Aquaplaning"; +VAL_ 1312 AB_Anforderung_eCall 0 "keine_Anforderung" 1 "Anforderung"; +VAL_ 1312 AB_Anprall_Seite_Beifahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_Rollover 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_FGS 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_Front_Beifahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_Front_Fahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_Heck_Beifahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Anprall_Heck_Fahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 AB_Wickelklappung_Reihe2_MI 0 "nicht_verbaut" 1 "nicht_verfuegbar__Fehler_oder_Init" 2 "nicht_verriegelt" 3 "verriegelt"; +VAL_ 1312 AB_Belegung_VB 0 "nicht_verfuegbar" 1 "Fehler" 2 "nicht_belegt" 3 "belegt"; +VAL_ 1312 AB_Abschaltanf_SIH_BF 0 "Normalbetrieb" 1 "Abschaltung_angefordert"; +VAL_ 1312 AB_Anprall_Seite_Fahrer 0 "kein_Anprall" 1 "Anprall_erkannt"; +VAL_ 1312 SC_PAO_Schriftzug_Anf 0 "LED aus" 1 "LED an" 2 "LED blinken" 3 "reserviert"; +VAL_ 1312 SC_PAO_ON_Anf 0 "LED aus" 1 "LED an" 2 "LED blinken" 3 "reserviert"; +VAL_ 1312 SC_PAO_OFF_Anf 0 "LED aus" 1 "LED an" 2 "LED blinken" 3 "reserviert"; +VAL_ 1312 AB_Crashschwere 0 "kein_Ereignis" 1 "Crashschwere_1" 2 "Crashschwere_2" 3 "Crashschwere_3" 4 "Crashschwere_4" 5 "Crashschwere_5" 6 "Crashschwere_2_bis_5" 7 "Fehler"; +VAL_ 1312 AB_Anforderung_USM 0 "keine_Anforderung" 1 "Anforderung"; +VAL_ 1312 AB_Gurtschloss_FA 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_BF 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe2_FA 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe2_MI 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe2_BF 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe3_FA 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe3_MI 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Gurtschloss_Reihe3_BF 0 "nicht_verbaut" 1 "nicht_verfügbar (Fehler oder Init)" 2 "nicht_gesteckt" 3 "gesteckt"; +VAL_ 1312 AB_Sitzpos_Sens_FA 0 "nicht verfügbar" 1 "Fehler" 2 "Sitz nicht vorne" 3 "Sitz vorne"; +VAL_ 1312 AB_Sitzpos_Sens_BF 0 "nicht verfügbar" 1 "Fehler" 2 "Sitz nicht vorne" 3 "Sitz vorne"; +VAL_ 1312 AB_Wickelklappung_Reihe2_BF 0 "nicht_verbaut" 1 "nicht_verfuegbar__Fehler_oder_Init" 2 "nicht_verriegelt" 3 "verriegelt"; +VAL_ 1312 AB_Wickelklappung_Reihe2_FA 0 "nicht_verbaut" 1 "nicht_verfuegbar__Fehler_oder_Init" 2 "nicht_verriegelt" 3 "verriegelt"; +VAL_ 1349 AB_Gurtwarn_Reihe2_FA 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 AB_Gurtwarn_Reihe2_BF 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 AbstWarn_MV_FAS_Fkt_Status 0 "Init" 1 "Funktion_Ist_Ein" 2 "Funktion_Ist_Aus" 3 "Fehler"; +VAL_ 1349 WarnBrems_Charisma_Status 0 "Init" 1 "verfügbar" 2 "nicht verfügbar" 3 "asynchron durch Fahrerwunsch"; +VAL_ 1349 WarnBrems_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 1349 AB_Gurtwarn_Reihe2_MI 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 AB_Gurtwarn_Reihe3_FA 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 AB_Gurtwarn_Reihe3_MI 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 AB_Gurtwarn_Reihe3_BF 0 "nicht_verbaut" 1 "keine_Gurtwarnung_Sitz_leer" 2 "keine_Gurtwarnung_Sitz_belegt" 3 "Gurtwarnung_Sitz_belegt"; +VAL_ 1349 LGI_FAS_Fkt_Status 0 "Init" 1 "Funktion_Ist_Ein" 2 "Funktion_Ist_Aus" 3 "Fehler"; +VAL_ 1349 PreCrash_FAS_Fkt_Status 0 "Init" 1 "Funktion_Ist_Ein" 2 "Funktion_Ist_Aus" 3 "Fehler"; +VAL_ 1349 AB_SBR_hinten_verbau 0 "ohne_SBR_hinten" 1 "mit_SBR_hinten" 2 "nicht_definiert" 3 "Init"; +VAL_ 1349 AWV_Einstellung_System_ASG 0 "deaktiviert" 1 "aktiviert"; +VAL_ 1349 AWV_Einstellung_Warnung_ASG 0 "Aus" 1 "Setting_2" 2 "Setting_3" 3 "Setting_4" 4 "Setting_5" 5 "Ein"; +VAL_ 1349 SC_PreSense_Modus_Warnung_NV 0 "Aus" 1 "Setting_2" 2 "Setting_3" 3 "Setting_4" 4 "Setting_5" 5 "Ein"; +VAL_ 1349 SC_PreSense_Modus_Warnung_MV 0 "Aus" 1 "Setting_2" 2 "Setting_3" 3 "Setting_4" 4 "Setting_5" 5 "Ein"; +VAL_ 1349 SC_PreSense_Modus_System_MV 0 "deaktiviert" 1 "aktiviert"; +VAL_ 1349 SC_PreSense_Modus_System_NV 0 "deaktiviert" 1 "aktiviert"; +VAL_ 1349 SC_PreSense_Modus_System_KAS 0 "deaktiviert" 1 "aktiviert"; +VAL_ 1355 PH_Verschmutzungsmeldung 0 "keine_Anzeige_kein_Gong" 1 "Textmeldung_PDC_hinten_verschmutzt_mit_Gong" 2 "Textmeldung_PDC_hinten_verschmutzt_ohne_Gong" 3 "Textmeldung_PDC_vorn_verschmutzt_mit_Gong" 4 "Textmeldung_PDC_vorn_verschmutzt_ohne_Gong" 5 "Textmeldung_PDC_verschmutzt_mit_Gong" 6 "Textmeldung_PDC_verschmutzt_ohne_Gong" 7 "Textmeldung_PDC_seitlich_verschmutzt_mit_Gong" 8 "Textmeldung_PDC_seitlich_verschmutzt_ohne_Gong"; +VAL_ 1355 PH_Aufschaltursache 0 "Anlage aus" 1 "Anlage durch einlegen R-Gang aktiviert" 2 "Anlage manuell durch Taster aktiviert" 3 "Anlage automatisch aktiviert" 4 "Anlage durch ARA aktiviert" 5 "Rueckwaertsrollen" 6 "Anlage_durch_PLA_aktiviert" 7 "Anlage_durch_IPA_aktiviert" 8 "Anlage_durch_FA_aktiviert" 9 "Anlage_durch_RBF_oder_MA_aktiviert" 10 "Anlage_durch_Smartphone_aktiviert" 11 "Anlage_durch_Jokertaste_aktiviert" 12 "Anlage_durch_Favoritentasten_aktiviert" 13 "Anlage_durch_SideViewTaster_aktiviert" 14 "Anlage_durch_RCTA_aktiviert" 15 "Anlage_durch_KAS_aktiviert" 16 "Anlage_durch_AWC_aktiviert" 30 "Init_Initialisierungsphase_nach_Kl_15_ein_oder_Reset" 31 "Fehler_gestoerter_Zustand_System_noch_aktiv"; +VAL_ 1355 PH_Ton_Ausgabe 0 "Init" 1 "Intervallton_vorne" 2 "Intervallton_hinten" 3 "Dauerton_vorne" 4 "Dauerton_hinten" 5 "Quittierungston" 6 "Reserviert" 7 "Fehler"; +VAL_ 1355 PH_Ton_Pausenlaenge 0 "Init" 1 "Pause_5ms" 2 "Pause_10ms" 3 "Pause_15ms" 100 "Pause_500ms" 101 "Reserviert" 126 "Reserviert" 127 "Fehler"; +VAL_ 1355 PH_Ton_Richtung 0 "vorne" 1 "vorne_rechts" 2 "rechts" 3 "rechts_hinten" 4 "hinten" 5 "hinten_links" 6 "links" 7 "vorne_links"; +VAL_ 1355 PH_Ton_Lautstaerke 0 "Minimallautstaerke" 1 "Lautstaerke_1" 2 "Lautstaerke_2" 3 "Lautstaerke_3" 4 "Lautstaerke_4" 5 "Lautstaerke_5" 6 "Lautstaerke_6" 7 "Maximallautstaerke"; +VAL_ 1355 BCM_WAH_Meldung 0 "Init" 1 "Fehlermeldung_bei_Nichtverfuegbarkeit_mit_Gong" 2 "Fehlermeldung_bei_Nichtverfuegbarkeit_ohne_Gong" 3 "Anzeige_dass_Fahrzeug_erkannt_wurde_und_Funktion_aktiv_ist" 4 "Wiederanfahrhinweis_mit_Gong" 5 "Wiederanfahrhinweis_ohne_Gong"; +VAL_ 1355 PDC_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 1355 PDC_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 1361 WFS_Schluessel_Fahrberecht 0 "kein authorisierter Schluessel erkannt" 1 "aktive_Funkschluessel_Nr_01" 2 "aktive_Funkschluessel_Nr_02" 3 "aktive_Funkschluessel_Nr_03" 4 "aktive_Funkschluessel_Nr_04" 5 "aktive_Funkschluessel_Nr_05" 6 "aktive_Funkschluessel_Nr_06" 7 "aktive_Funkschluessel_Nr_07" 8 "aktive_Funkschluessel_Nr_08" 9 "ungueltig_09" 10 "ungueltig_10" 11 "ungueltig_11" 12 "ungueltig_12" 13 "ungueltig_13" 14 "ungueltig_14" 15 "digitaler_Schluessel_aktiv"; +VAL_ 1361 WFS_ID_Geb_autorisiert 0 "Schluessel_nicht_authorisiert" 1 "Schluessel authorisiert"; +VAL_ 1361 WFS_ID_Geb_autorisiert_in_Kl15 0 "nicht_authorisiert_in_Kl15" 1 "authorisiert_in_Kl15"; +VAL_ 1361 WFS_ID_Geb_steckt 0 "kein_Schluessel_im_Zuendschloss" 1 "Schluessel steckt im Zuendschloss"; +VAL_ 1361 WFS_Schluessel_Soll 0 "Init"; +VAL_ 1361 WFS_Schluessel_Ist 0 "Init"; +VAL_ 1361 WFS_Safe 0 "Init" 1 "WFS nicht deaktiviert"; +VAL_ 1361 WFS_LZ 0 "nicht def." 1 "LZ 1" 2 "LZ 2" 3 "LZ 3"; +VAL_ 1361 WFS_ELV_authorisiert 0 "ELV_nicht_authorisiert" 1 "ELV_authorisiert"; +VAL_ 1361 WFS_LF_Aktiv 0 "Funktempfang_nicht_aktiv" 1 "LF_Funkempfang_aktiv"; +VAL_ 1361 WFS_Betrieb_Lesespule 0 "keine_Schluesselkomm_Lesespule" 1 "Schluesselkomm_Lesespule"; +VAL_ 1361 WFS_Klemmenfreigabe 0 "keine_Freigabe" 1 "Freigabe"; +VAL_ 1361 WFS_Fahrerhinweise 0 "Keine_Anzeigeanforderung" 1 "Schuessel_Auth_niO" 2 "Notlauf_aktiv" 3 "Schluessel_Kessy_nicht_gefunden"; +VAL_ 1361 WFS_Parken_Status 0 "Limitierung_inaktiv" 1 "Limitierung_aktiv" 2 "Abbruch"; +VAL_ 1411 BCM_FH_Freigabe 1 "Funktionsfreigabe Fensterheber"; +VAL_ 1411 BCM_Komfortfkt_Freigabe 0 "Komfortfunktion gesperrt" 1 "globale Freigabe der Komfortfunktion erteilt"; +VAL_ 1411 BCM_HSK_Freigabe 0 "erlauben" 1 "sperren"; +VAL_ 1411 BCM_Verdeck_Freigabe 0 "Verdeckbetrieb nicht erlaubt" 1 "Verdeckbetrieb erlaubt"; +VAL_ 1411 ZV_verriegelt_intern_ist 1 "Fahrzeug innen verriegelt; Istzustand"; +VAL_ 1411 ZV_verriegelt_extern_ist 1 "Fahrzeug_aussen_verriegelt_Istzustand"; +VAL_ 1411 ZV_verriegelt_intern_soll 1 "Fahrzeug verriegelt intern; Sollzusstand"; +VAL_ 1411 ZV_verriegelt_extern_soll 1 "Fahrzeug verriegelt extern; Sollzusstand"; +VAL_ 1411 ZV_gesafet_extern_ist 1 "Fahrzeug aussen gesafet; Istzustand"; +VAL_ 1411 ZV_gesafet_extern_soll 1 "Fahrzeug_aussen_gesafet_Sollzustand"; +VAL_ 1411 ZV_Einzeltuerentriegelung 1 "Fahrzeug an Einzeltuer entriegelt"; +VAL_ 1411 ZV_Heckeinzelentriegelung 1 "Heckdeckeleinzelentriegelung"; +VAL_ 1411 ZV_FT_offen 0 "FT_geschlossen" 1 "FT_geoeffnet"; +VAL_ 1411 ZV_BT_offen 0 "BT_geschlossen" 1 "BT_geoeffnet"; +VAL_ 1411 ZV_HFS_offen 0 "geschlossen" 1 "offen"; +VAL_ 1411 ZV_HBFS_offen 0 "geschlossen" 1 "offen"; +VAL_ 1411 ZV_HD_offen 1 "Heckdeckel_auf"; +VAL_ 1411 ZV_HS_offen 0 "Heckscheibe_geschlossen" 1 "Heckscheibe auf"; +VAL_ 1411 IRUE_aktiv 0 "unscharf" 1 "scharf"; +VAL_ 1411 DWA_aktiv 0 "unscharf" 1 "scharf"; +VAL_ 1411 HD_Hauptraste 0 "geschlossen" 1 "offen"; +VAL_ 1411 HD_Vorraste 0 "geschlossen" 1 "offen"; +VAL_ 1411 FFB_CarFinder 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1411 FFB_Komfortoeffnen 0 "kein_Komfortoeffnen_empfangen" 1 "Komfortoeffnen ueber Funk empfangen"; +VAL_ 1411 FFB_Komfortschliessen 0 "kein_Komfortschliessen_empfangen" 1 "Komfortschliessen ueber Funk empfangen"; +VAL_ 1411 ZV_Schluessel_Zugang 0 "kein_auth_Schluessel_erkannt" 1 "aktive_Funkschluessel_Nr_01" 2 "aktive_Funkschluessel_Nr_02" 3 "aktive_Funkschluessel_Nr_03" 4 "aktive_Funkschluessel_Nr_04" 5 "aktive_Funkschluessel_Nr_05" 6 "aktive_Funkschluessel_Nr_06" 7 "aktive_Funkschluessel_Nr_07" 8 "aktive_Funkschluessel_Nr_08" 9 "ungueltig_09" 10 "ungueltig_10" 11 "ungueltig_11" 12 "ungueltig_12" 13 "ungueltig_13" 14 "ungueltig_14" 15 "ungueltig_15"; +VAL_ 1411 ZV_SafeFunktion_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1411 FBS_Warn_Schluessel_Batt 0 "i.O." 1 "defekt"; +VAL_ 1411 ZV_Oeffnungsmodus 0 "globale_Oeffnung" 1 "ZV_mit_Einzeltuerentr" 2 "ZV_individuell_selektiv" 3 "ZV_seitenselektiv"; +VAL_ 1411 HFS_verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 1411 HFS_gesafet 0 "nicht_gesafet" 1 "gesafet"; +VAL_ 1411 HBFS_verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 1411 HBFS_gesafet 0 "nicht_gesafet" 1 "gesafet"; +VAL_ 1411 ZV_ist_Zustand_verfuegbar 0 "nicht_verfuegbar" 1 "verfuegbar_alle_TSGs_am_Bus"; +VAL_ 1411 IRUE_Taster_Fkts_LED 0 "LED_aus" 1 "LED_ein"; +VAL_ 1411 ZV_Tankklappe_offen 0 "Tankklappe_geschlossen" 1 "Tankklappe_offen"; +VAL_ 1411 ZV_Rollo_auf 0 "inaktiv" 1 "aktiv"; +VAL_ 1411 ZV_Rollo_zu 0 "inaktiv" 1 "aktiv"; +VAL_ 1411 ZV_SAD_auf 0 "inaktiv" 1 "aktiv"; +VAL_ 1411 ZV_SAD_zu 0 "inaktiv" 1 "aktiv"; +VAL_ 1411 BCM_Tankklappensteller_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 1411 ZV_verriegelt_soll 0 "Init" 1 "nicht_verriegelt" 2 "verriegelt"; +VAL_ 1413 SI_Sammel_SG_Fehler 61 "Reserviert" 62 "Overflow" 63 "ungueltig"; +VAL_ 1413 SI_Diagnose_Aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1413 SI_QRS_Mode 0 "QRS_Messmodus_nicht_aktiv" 1 "QRS_Messmodus_aktiv"; +VAL_ 1413 SI_T_Mode 0 "Transportmodus_nicht_aktiv" 1 "Transportmodus_aktiv"; +VAL_ 1413 SI_NWDF 0 "Ueberwachung_nicht_freigegeben" 1 "Ueberwachung_freigegeben"; +VAL_ 1413 SI_NWDF_gueltig 0 "NWDF_wird_nicht_unterstuetzt" 1 "NWDF_wird_unterstuetzt"; +VAL_ 1413 SI_Sammelfehler 0 "kein_Sammelfehler" 1 "Sammelfehler"; +VAL_ 1413 GW_KD_Fehler 0 "kein_KD_Fehler" 1 "KD_Fehler"; +VAL_ 1413 SI_T_Schutz 0 "Transportschutz_nicht_aktiv" 1 "Transportschutz_aktiv"; +VAL_ 1413 SI_BUS_01 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_02 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_03 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_04 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_05 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_06 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_07 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_08 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_09 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_10 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_11 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_12 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_13 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_14 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_BUS_15 0 "keine_Busruhe" 1 "Busruhe"; +VAL_ 1413 SI_Bus_Identifikation 16 "CAN_Diagnose" 17 "CAN_Antrieb" 18 "CAN_Komfort" 19 "CAN_Infotainment" 20 "CAN_Fahrwerk" 21 "CAN_Extended" 22 "CAN_Hybrid" 23 "CAN_Lade" 24 "CAN_Kombi" 25 "CAN_Komfort_2" 26 "CAN_AFS" 33 "CAN_FahrerAssistenzSysteme" 34 "CAN_Migration" 35 "CAN_Connect" 36 "CAN_AnzeigeBedienung" 37 "CAN_ElectricalVehicle" 40 "CAN_Telematik" 41 "CAN_MFL" 42 "CAN_FahrerAssistenzSysteme_2" 48 "FlexRay_A" 49 "FlexRay_B" 97 "VLAN_FAS" 98 "VLAN_Infotainment" 99 "VLAN_Connect" 100 "VLAN_Komfort" 101 "VLAN_Antrieb" 102 "VLAN_Diagnose" 103 "VLAN_Internet" 104 "VLAN_Gateway" 105 "VLAN_Remote_FC" 106 "VLAN_Connect_2" 107 "VLAN_Licht" 108 "VLAN_Charge" 109 "VLAN_Cockpit" 176 "HCP1_CANFD01" 177 "HCP1_CANFD02" 178 "HCP1_CANFD03" 179 "HCP1_CANFD04" 180 "HCP1_CANFD05" 181 "HCP1_CANFD06" 182 "HCP1_CANFD07" 183 "HCP1_CANFD08" 186 "HCP4_CANFD03" 187 "HCP4_CANFD04" 188 "HCP1_CANFD09" 189 "HCP4_CANFD06" 190 "HCP4_CANFD07" 191 "HCP4_CANFD08" 192 "HCP4_CANFD09" 193 "HCP4_CANFD10" 194 "HCP1_CANFD10" 195 "ICAS1_CANFD2_HCP5_CANFD02" 196 "HCP1_CANFD11" 197 "WU_HCP1_CANFD" 198 "WU_HCP2_1_CANFD" 199 "WU_HCP_2_CANFD" 200 "WU_HCP_3_CANFD" 201 "WU_HCP4_CANFD" 202 "WU_HCP3_CANFD02" 204 "ESC_CANFD" 205 "HCP4_CANFD11" 206 "HCP4_CANFD12" 207 "HCP5_CANFD04" 208 "HCP5_CANFD05" 212 "WU_ConMod_CANFD" 213 "WU_PASD_CANFD"; +VAL_ 1413 SI_CAB 0 "inaktiv" 1 "CAB_01__Tueren" 2 "CAB_02__Anhaenger" 4 "CAB_03__Nightvision" 8 "CAB_04__Sitzverstellung" 16 "CAB_05__Klappen" 32 "CAB_06__Infotainment" 64 "CAB_07__Sub_Infotainment" 128 "CAB_08__Anzeige" 256 "CAB_09__Laden" 512 "CAB_10__Klima" 1024 "CAB_11__FlexRay" 262144 "CAB_19_VLAN_Remote_FC" 524288 "CAB_20_VLAN_Komfort"; +VAL_ 1420 KST_Txt_P_Gang 0 "Aus" 1 "Ein"; +VAL_ 1420 KST_Txt_Panikabschaltung 0 "Aus" 1 "Ein"; +VAL_ 1420 KST_Anf_Klemmenfreigabe_ELV 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1420 KST_Txt_Komfortabschaltung 0 "inaktiv" 1 "aktiv"; +VAL_ 1420 KST_ZAT_betaetigt 0 "Aus" 1 "Ein"; +VAL_ 1420 KST_Unterdr_Zuendungsmeldung 0 "keine_Unterdr_der_Zuendungsmeldung" 1 "Unterdr_der_Zuendungsmeldung_aktiv"; +VAL_ 1420 KST_aut_Abschaltung_Zuendung 0 "Zuendung_wird_bei_Verl_nicht_deaktiviert" 1 "Zuendung_wird_bei_Verl_deaktiviert"; +VAL_ 1420 KST_Anf_ZV_Verriegelung 0 "inaktiv" 1 "aktiv"; +VAL_ 1420 Relais_VoKo_angesteuert 0 "nicht_angesteuert" 1 "angesteuert"; +VAL_ 1420 RSt_Anforderung_HMS 0 "keine_Anforderung" 1 "halten" 2 "parken" 3 "halten_Standby" 4 "anfahren" 5 "Loesen_ueber_Rampe" 6 "Parken_mit_P"; +VAL_ 1440 LS_Helligkeit_IR 254 "Init" 255 "Fehler"; +VAL_ 1440 LS_Helligkeit_FW 1022 "Init" 1023 "Fehler"; +VAL_ 1440 LS_defekt 0 "OK" 1 "defekt"; +VAL_ 1440 LS_Verbau 0 "Init" 1 "Lichtsensor_verbaut"; +VAL_ 1440 RS_Regenmenge 14 "Init" 15 "Fehler"; +VAL_ 1440 RS_Verbau 0 "Init" 1 "Regensensor verbaut"; +VAL_ 1440 RS_Verglasung_schliessen 0 "Verglasung nicht schliessen" 1 "Verglasung schliessen"; +VAL_ 1440 RS_defekt 0 "OK" 1 "defekt"; +VAL_ 1440 RS_Wischergeschwindigkeit 0 "kein Wischen" 1 "42 Huebe/min" 2 "45 Huebe/min" 3 "48 Huebe/min" 4 "51 Huebe/min" 5 "54 Huebe/min" 6 "57 Huebe/min" 7 "60 Huebe/min"; +VAL_ 1440 RLS_Vorfeldhelligkeit_Boost 0 "groesser_24413_Lux" 1 "bis_24413_Lux" 2 "bis_22193_Lux" 3 "bis_20176_Lux" 4 "bis_18342_Lux" 5 "bis_16647_Lux" 6 "bis_15158_Lux" 7 "bis_13780_Lux" 8 "bis_12527_Lux" 9 "bis_11388_Lux" 10 "bis_10353_Lux" 11 "bis_9412_Lux" 12 "bis_8556_Lux" 13 "bis_7778_Lux" 14 "bis_7071_Lux" 15 "bis_6428_Lux"; +VAL_ 1442 BMS_Status_ServiceDisconnect 0 "gesteckt" 1 "gezogen"; +VAL_ 1442 BMS_Status_Spgfreiheit 0 "Init" 1 "HV_Komponente_spannungsfrei" 2 "HV_Komp_nicht_spannungsfrei" 3 "Fehler_nicht_spannungsfrei"; +VAL_ 1442 BMS_OBD_Lampe_Anf 0 "kein_MIL_Request" 1 "MIL_Request"; +VAL_ 1442 BMS_IstModus 0 "HV_inaktiv" 1 "Fahren_HV_aktiv" 2 "stBalancing" 3 "externes_Laden" 4 "AC_Laden" 5 "Error_Batt" 6 "DC_Laden" 7 "Init"; +VAL_ 1442 BMS_Fehlerstatus 0 "Komponente_IO" 1 "Eingeschr_KompFkt_Isofehler_I" 2 "Eingeschr_KompFkt_Isofehler_II" 3 "Eingeschr_KompFkt_Interlock" 4 "Eingeschr_KompFkt_SD" 5 "Eingeschr_KompFkt_Leistungsred" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 1442 BMS_Kapazitaet_02 2047 "Init"; +VAL_ 1442 BMS_Soll_SOC_HiRes 2046 "Init" 2047 "Fehler"; +VAL_ 1447 TM_Spiegel_Anklappen 0 "Init" 1 "Spiegel_anklappen"; +VAL_ 1447 TM_Nur_Hupen 0 "inaktiv" 1 "aktiv"; +VAL_ 1447 TM_Door_Lock 0 "Init" 1 "door_lock"; +VAL_ 1447 TM_Door_Unlock 0 "Init" 1 "door_unlock"; +VAL_ 1447 TM_Warnblinken 0 "Init" 1 "Warnblinken_on"; +VAL_ 1447 TM_Panik_Alarm 0 "Init" 1 "panik_alarm_on"; +VAL_ 1447 TM_ZV_Signatur 0 "Init"; +VAL_ 1452 HVEM_IstStrom_HVVerbraucher 4094 "Init" 4095 "Fehler"; +VAL_ 1452 HVEM_Energie_Klima_Vorgabe_HighR 6 "Init" 7 "Fehler"; +VAL_ 1452 HVEM_IstLeistungNA 510 "Init" 511 "Fehler"; +VAL_ 1452 HVEM_Leistung_Klima_Vorgabe 254 "Init" 255 "Fehler"; +VAL_ 1452 HVEM_Nutzbare_Energie 2045 "Max" 2046 "Init" 2047 "Fehler"; +VAL_ 1452 HVEM_Energie_Klima_Vorgabe 254 "Init" 255 "Fehler"; +VAL_ 1452 HVEM_MO_MaxLeistungIgnoriert 0 "Max_Leistung_nicht_ignoriert" 1 "Max_Leistung_ignoriert"; +VAL_ 1485 DC_Fehlerstatus 0 "Komponente_IO" 1 "Eingeschr_KompFkt_Entlad_defekt" 3 "Eingeschr_KompFkt_Interlock" 6 "Keine_Komponentenfunktion" 7 "Init"; +VAL_ 1485 DC_Peakstrom_verfuegbar 0 "Peakstrom_nicht_verfuegbar" 1 "Peakstrom_verfuegbar"; +VAL_ 1485 DC_Abregelung_Temperatur 0 "keine_Abregelung" 1 "Abregelung_Temp"; +VAL_ 1485 DC_IstModus_02 0 "Standby" 1 "HV_On_Vorladen" 2 "Tiefsetzen" 3 "Hochsetzen" 4 "Pruefimpuls_12V" 5 "Fehler" 7 "Initialisierung"; +VAL_ 1485 DC_HV_EKK_IstModus 0 "Standby" 2 "Tiefsetzen" 3 "Hochsetzen" 5 "Fehler" 7 "Initialisierung"; +VAL_ 1485 DC_Status_Spgfreiheit_HV 0 "Init" 1 "HV_Komponente_spannungsfrei" 2 "HV_Komp_nicht_spannungsfrei" 3 "Fehler_nicht_spannungsfrei"; +VAL_ 1485 DC_IstSpannung_EKK_HV 255 "Init"; +VAL_ 1485 DC_Temperatur 254 "Init" 255 "Fehler"; +VAL_ 1505 BCM1_Aussen_Temp_ungef 253 "nicht_verbaut" 254 "Initwert" 255 "Fehler"; +VAL_ 1505 BCM_Heizungsabsperrventil_Status 0 "HAV_offen" 1 "HAV_geschlossen" 2 "Init_oder_nicht_verbaut" 3 "Fehler"; +VAL_ 1505 BCM_Heizungspumpe_Status 0 "Pumpe_aus" 1 "Pumpe_aktiv_und_Stauts_iO" 2 "Init_oder_nicht_verbaut" 3 "Fehler"; +VAL_ 1505 BCM_Kompressorkupplung_Status 0 "Kupplung_offen" 1 "Kupplung_geschlossen" 2 "Init_oder_nicht_verbaut" 3 "Fehler"; +VAL_ 1505 BCM1_PTC_stufig_Status 0 "Aus" 1 "Stufe_1_aktiv" 2 "Stufe_2_aktiv" 3 "Stufe_3_aktiv" 6 "Init_oder_nicht_verbaut" 7 "Fehler"; +VAL_ 1505 BCM1_FStatus_Aussentemp_ungef 0 "iO" 1 "niO"; +VAL_ 1505 BCM1_Kompressorstrom_ist 254 "Init, bzw. nicht verfuegbar" 255 "Fehler"; +VAL_ 1505 BCM1_OBD_FStatus_ATemp 0 "kein Fehler / Init / nicht verbaut" 1 "KS- (Kurzschluss nach minus)" 2 "KS+ (Kurzschluss nach plus)" 3 "OC (Leitungsunterbrechung)" 4 "OOR+ (Signal zu gross)" 5 "OOR- (Signal zu klein)" 6 "RC+ (Signal unplausibel zu gross)" 7 "RC- (Signal unplausibel zu klein)" 8 "KS+/OC (Kurzschluss nach plus/Unterbrechung)" 9 "KS-/OC (Kurzschluss nach minus/Unterbrechung)" 10 "KS-/KS+ (Kurzschluss nach minus/plus)" 11 "KS-/KS+/OC (Kurzschluss nach minus/plus/Unterbrechung)" 12 "frei" 13 "frei" 14 "frei" 15 "frei"; +VAL_ 1513 DS_Kaeltemittel_P 2046 "Init" 2047 "Fehler"; +VAL_ 1513 DS_Status 0 "i.O." 1 "t.b.d." 2 "Init bzw. nicht verfügbar" 3 "Fehler"; +VAL_ 1513 ION_Status 0 "Hochspannung_ausgeschaltet" 1 "Hochspannung_eingeschaltet" 2 "Init"; +VAL_ 1513 ION_Status_LED 0 "Aus" 1 "Ein"; +VAL_ 1513 AAU_Geblaese 126 "Init" 127 "Fehler"; +VAL_ 1513 ION_Status_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1520 DI_KL_58xd 254 "Init" 255 "Fehler"; +VAL_ 1520 DI_KL_58xs 126 "Init" 127 "Fehler"; +VAL_ 1520 DI_KL_58xt 126 "Init" 127 "Fehler"; +VAL_ 1524 IL_Bel_FS_Ausstieg 0 "inaktiv" 1 "aktiv"; +VAL_ 1524 IL_Bel_BFS_Ausstieg 0 "inaktiv" 1 "aktiv"; +VAL_ 1524 IL_Bel_HFS_Ausstieg 0 "inaktiv" 1 "aktiv"; +VAL_ 1524 IL_Bel_HBFS_Ausstieg 0 "inaktiv" 1 "aktiv"; +VAL_ 1524 BCM1_Innenlicht_gedimmt_V 0 "100% Innenlicht" 1 "gedimmtes Innenlicht"; +VAL_ 1524 BCM1_Innenlicht_gedimmt_H 0 "100% Innenlicht" 1 "gedimmtes Innenlicht"; +VAL_ 1524 IL_Innenlicht_aktiv 0 "Innenlicht inaktiv" 1 "Innenlicht aktiv"; +VAL_ 1524 IL_Klemme_30G_aktiv 0 "Kl_30G_abgeschaltet" 1 "eingeschaltet"; +VAL_ 1524 BCM1_DI_Rampe_Innenlicht 0 "Dimmrampe 0" 1 "Dimmrampe 1"; +VAL_ 1524 BCM1_DI_Rampe_Leselicht 0 "Dimmrampe 0" 1 "Dimmrampe 1"; +VAL_ 1524 BCM1_Innenlicht_H 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Innenlicht_V 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Leselicht_Anf_hl 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Leselicht_Anf_hr 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Leselicht_Anf_vl 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Leselicht_Anf_vr 0 "Aus" 1 "Ein"; +VAL_ 1524 BCM1_Leuchten_Aus 0 "keine Aenderung" 1 "Aus"; +VAL_ 1524 AMB_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 1524 AMB_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 1600 MO_QBit_Ansaugluft_Temp 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1600 MO_QBit_Oel_Temp 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1600 MO_QBit_Kuehlmittel_Temp 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1600 MO_HYB_Fehler_HV_Netz 0 "i_O" 1 "kein_generatorischer_Betrieb_moeglich"; +VAL_ 1600 MO_aktives_Getriebeheizen 0 "kein_Ventil_ansteuern" 1 "Ventil_muss_angesteuert_werden"; +VAL_ 1600 MO_Absperrventil_oeffnen 0 "nicht_verfuegbar" 1 "Ansteuerung_Ventil_zulaessig" 2 "Ventil_oeffnen_oder_geoeffnet" 3 "Ventil_schliessen_oder_geschlossen"; +VAL_ 1600 MO_Ansaugluft_Temp 254 "Init" 255 "Fehler"; +VAL_ 1600 MO_Oel_Temp 253 "nicht_verbaut" 254 "Init" 255 "Fehler"; +VAL_ 1600 MO_Kuehlmittel_Temp 254 "Init" 255 "Fehler"; +VAL_ 1600 MO_Hoeheninfo 255 "Fehler"; +VAL_ 1600 MO_Kennfeldk 0 "keine Kennfeldkühlung vorhanden" 1 "Kennfeldkühlung vorhanden"; +VAL_ 1600 MO_Getriebe_kuehlen 0 "nicht_kuehlen" 1 "kuehlen"; +VAL_ 1600 MO_Heizungspumpenansteuerung 13 "Fehler" 14 "Init" 15 "nicht_verbaut"; +VAL_ 1600 MO_SpannungsAnf 0 "keine_Anforderung" 1 "Anforderung"; +VAL_ 1601 MO_Faktor_Momente_02 0 "nicht_belegt"; +VAL_ 1601 MO_Hybridfahrzeug 0 "kein_Hybridfahrzeug" 1 "Mild_Hybrid" 2 "Full_Hybrid" 3 "PlugIn_Hybrid"; +VAL_ 1601 MO_Getriebe_Code 0 "Init" 2 "DL501" 3 "DL800" 4 "VL381" 5 "DL382_Front" 6 "DL382_Allrad" 7 "DL702" 8 "AL552_Allrad" 9 "AL552_Front" 10 "AL651" 11 "AL551__AL951__AL1000_8A" 12 "PDK_PAG" 13 "AL551_Hybrid" 15 "Handschalter_konventionell" 16 "AQ250_160" 17 "AQ450" 18 "DQ200" 19 "DQ250" 20 "DQ500" 21 "SQ100" 22 "SQ200" 23 "DQ400E" 24 "DQ381" 25 "AL550" 26 "AQ300" 31 "DL800E" 32 "Single_Gear__ohne_GSG_WH_am_MSG" 33 "EQ550_2P"; +VAL_ 1601 MO_StartStopp_Codiert 0 "Start_Stopp_nicht_verbaut" 1 "Start_Stopp_verbaut"; +VAL_ 1601 MO_Anzahl_Zyl 0 "kein_Zylinder" 1 "1_Zylinder" 2 "2_Zylinder" 3 "3_Zylinder" 4 "4_Zylinder" 5 "5_Zylinder" 6 "6_Zylinder" 7 "7_Zylinder" 8 "8_Zylinder" 9 "9_Zylinder" 10 "10_Zylinder" 11 "11_Zylinder" 12 "12_Zylinder" 13 "15_Zylinder" 14 "16_Zylinder" 15 "18_Zylinder"; +VAL_ 1601 MO_Kraftstoffart 0 "Diesel" 1 "Benzin_inkl_E25_E85" 2 "CNG" 3 "LPG" 4 "Wasserstoff" 5 "E100_Ethanol" 15 "kein_Verbrennungskraftstoff"; +VAL_ 1601 MO_Ansaugsystem 0 "Turbo" 1 "Sauger"; +VAL_ 1601 MO_DPF_verbaut 0 "kein_DPF_verbaut" 1 "DPF_verbaut"; +VAL_ 1601 TSK_Codierung 0 "kein_Fahrgeschwindigkeitsregler" 1 "GRA" 2 "GRA_Plus" 3 "Basis_ACC" 4 "ACC_Follow_to_Stop" 5 "ACC_Stop_and_Go" 7 "Codierung_in_Plausibilisierungsphase"; +VAL_ 1603 KBI_Einheit_Datum 0 "Tag/Monat/Jahr" 1 "Monat/Tag/Jahr" 2 "Jahr/Monat/Tag" 3 "reserviert"; +VAL_ 1603 KBI_Einheit_Druck 0 "Druckangabe in bar" 1 "Druckangabe in psi" 2 "Druckangabe in kPa" 3 "tbd."; +VAL_ 1603 KBI_Einheit_Streckenanz 0 "Kilometer" 1 "Meilen"; +VAL_ 1603 KBI_MFA_v_Einheit_02 0 "kmh" 1 "mph"; +VAL_ 1603 KBI_Einheit_Temp 0 "Grad Celsius °C" 1 "Grad Fahrenheit °F"; +VAL_ 1603 KBI_Einheit_Uhrzeit 0 "24h" 1 "12h AM/PM"; +VAL_ 1603 KBI_Einheit_Verbrauch 0 "mpg UK" 1 "mpg USA" 2 "Liter/100km" 3 "km/Liter"; +VAL_ 1603 KBI_Einheit_Volumen 0 "Liter" 1 "Gallonen UK" 2 "Gallonen USA" 3 "reserviert"; +VAL_ 1603 KBI_Einheit_Verbrauch_elektr 0 "kWh_pro_100km" 1 "km_pro_kWh" 2 "kWh_pro_100mls" 3 "mls_pro_kWh" 4 "MPGe"; +VAL_ 1603 KBI_Einheit_Verbrauch_Gas 0 "kg_per_100km" 1 "km_per_kg" 2 "m3_per_100km" 3 "km_per_m3" 4 "miles_per_lbs" 5 "miles_per_yard3" 6 "miles_per_kg" 7 "miles_per_m3" 8 "miles_per_gallon_equivalent_US"; +VAL_ 1603 KBI_Einheit_Masse 0 "kg" 1 "lbs" 2 "reserviert"; +VAL_ 1622 ELV_Anf_Klemme_S 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Anf_Klemme_15 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Anf_Klemme_50 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_01_Sendestatus 0 "ELV_sendet_mit_1000ms" 1 "ELV_sendet_mit_50ms"; +VAL_ 1622 ELV_Verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 1622 ELV_Entriegelt 0 "ELV_nicht_entriegelt" 1 "ELV_entriegelt"; +VAL_ 1622 ELV_ZAT_betaetigt 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1622 ELV_Lebenszustand 0 "Lebenszustand_0" 1 "Lebenszustand_4"; +VAL_ 1622 ELV_Anlernmodus 0 "Normalbetrieb" 1 "Anlernmodus"; +VAL_ 1622 ELV_Klemmenfreigabe 0 "keine_Freigabe" 1 "Freigabe"; +VAL_ 1622 ELV_Abbruch_Anf_Klemmenfreigabe 0 "kein_Abbruch" 1 "Abbruch"; +VAL_ 1622 ELV_LED_Rot 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_LED_Gelb 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Panikabschaltung 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Lkg_Bewegen 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Werkstatt 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Defekt 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_P_Gang 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_PN_Gang 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Kupplung 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_Txt_Bremse 0 "Aus" 1 "Ein"; +VAL_ 1622 ELV_P_verriegelt 0 "nicht_verriegelt" 1 "verriegelt"; +VAL_ 1624 LV_Standlicht_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_Abblendlicht_Anzeige 0 "inaktiv" 1 "aktiv"; +VAL_ 1624 LV_Fernlicht_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_Nebellicht_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_Nebelschlusslicht_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_Tagfahrlicht_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_AFL_aktiv_Anzeige 0 "nicht aktiv" 1 "aktiv"; +VAL_ 1624 LV_AFL_defekt 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Blinker_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Standlicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblendlicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Fernlicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Nebellicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Blk_li_Seite_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Tagfahrlicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_FLA_aktiv_Anzeige 0 "aus" 1 "ein"; +VAL_ 1624 LV_FLA_defekt 0 "i.O." 1 "FLA defekt"; +VAL_ 1624 LV_FLA_Sensor_blockiert 0 "i.O." 1 "FLA-Sensor blockiert"; +VAL_ 1624 LV_Blinker_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Standlicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblendlicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Fernlicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Nebellicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Blk_re_Seite_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Tagfahrlicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Aussenlicht_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblendlicht_TFL_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Nebellicht_TFL_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Standlicht_TFL_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblend_Fernlicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblendlicht_TFL_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Nebellicht_TFL_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Standlicht_TFL_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abblend_Fernlicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abbiegelicht_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Abbiegelicht_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 BCM1_Linksverkehr 0 "Rechtsverkehr" 1 "Linksverkehr"; +VAL_ 1624 BCM1_Licht_Dunkelheit_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1624 LV_LED_Scheinwerfer_li_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_LED_Scheinwerfer_re_def 0 "OK" 1 "defekt"; +VAL_ 1624 LV_Blinker_VL_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1624 LV_Blinker_VR_aktiv 0 "inaktiv" 1 "aktiv"; +VAL_ 1624 LV_MXB_Status_Anzeige 0 "MXB_aus" 1 "MXB_regelt" 2 "MXB_volles_Fernlicht" 3 "MXB_und_Laser_aktiv"; +VAL_ 1629 BR_Systemart 0 "ABS" 1 "ABS_ASR" 2 "ESP" 3 "ESP_mit_integrierter_EPB"; +VAL_ 1629 ESP_SpannungsAnf_02 0 "keine_Anforderung" 1 "Anforderung_Stufe1" 2 "Anforderung_Stufe2" 3 "Anforderung_Stufe3"; +VAL_ 1629 ESP_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 1629 ESP_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 1629 ESP_Wiederstart_Anz_01 0 "keine_Anzeige" 1 "Rueckwaertsrollen"; +VAL_ 1629 ESP_Wiederstart_Anz_02 0 "keine_Anzeige" 1 "Autohold_Rutschen"; +VAL_ 1629 ESP_Wiederstart_Anz_03 0 "keine_Anzeige" 1 "Offroad_HDC"; +VAL_ 1629 ESP_Wiederstart_Anz_04 0 "keine_Anzeige" 1 "ESC_Off"; +VAL_ 1629 ESP_Stoppverbot_Anz_01 0 "keine_Anzeige" 1 "Notbremsung_aktiv"; +VAL_ 1629 ESP_Stoppverbot_Anz_02 0 "keine_Anzeige" 1 "Autohold_AVH_Rutschen"; +VAL_ 1629 ESP_Stoppverbot_Anz_03 0 "keine_Anzeige" 1 "Rueckwaertsrollen"; +VAL_ 1629 ESP_Stoppverbot_Anz_04 0 "keine_Anzeige" 1 "ESP_Pumpenlauf"; +VAL_ 1629 ESP_Stoppverbot_Anz_05 0 "keine_Anzeige" 1 "ESP_OFF"; +VAL_ 1629 ESP_Stoppverbot_Anz_06 0 "keine_Anzeige" 1 "Offroad_HDC"; +VAL_ 1629 ESP_Stoppverbot_Anz_07 0 "keine_Anzeige" 1 "ESP_Haltefunktion_nicht_verfuegbar"; +VAL_ 1629 ESP_Stoppverbot_Anz_Std 0 "keine_Anzeige" 1 "Standard_Stoppvetogrund"; +VAL_ 1629 ESP_Dachrelingsensor 0 "Sensor_nicht_verbaut" 1 "Quertraeger_montiert" 2 "Quertraeger_nicht_montiert" 3 "Fehler"; +VAL_ 1629 ESP_Stoppverbot_Anz_08 0 "keine_Anzeige" 1 "Neigungsbegrenzung"; +VAL_ 1629 HDC_Charisma_FahrPr 0 "keine_Funktion" 1 "Programm_1" 2 "Programm_2" 3 "Programm_3" 4 "Programm_4" 5 "Programm_5" 6 "Programm_6" 7 "Programm_7" 8 "Programm_8" 9 "Programm_9" 10 "Programm_10" 11 "Programm_11" 12 "Programm_12" 13 "Programm_13" 14 "Programm_14" 15 "Programm_15"; +VAL_ 1629 HDC_Charisma_Status 0 "Init" 1 "verfuegbar" 2 "nicht_verfuegbar" 3 "asynchron_durch_Fahrerwunsch"; +VAL_ 1629 BR_QBit_Reifenumfang 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1631 TSK_QBit_Steigung 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1631 TSK_QBit_Fahrzeugmasse 0 "gueltiger_Wert" 1 "Ersatz_Init_oder_Fehlerwert"; +VAL_ 1631 MO_SpannungsAnf_02 0 "keine_Anforderung" 1 "Anforderung_Stufe_1" 2 "Anforderung_Stufe_2" 3 "Anforderung_Stufe_3"; +VAL_ 1631 MO_DPF_reg 0 "DPF_regeneriert_nicht" 1 "DPF_regeneriert"; +VAL_ 1631 MO_Heizstrom_EKAT 127 "Fehler"; +VAL_ 1631 MO_Heizstrom_SCR 63 "Fehler"; +VAL_ 1631 MO_Anzeige_Kaltleuchte 0 "Lampe_aus" 1 "Lampe_an"; +VAL_ 1631 MO_P_Generator_ungefiltert_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1631 TSK_Getriebeinfo 0 "Handschalter" 1 "AL_AQ_Getriebe" 2 "DL_DQ_Getriebe" 3 "CVT_Getriebe"; +VAL_ 1631 MO_Energieinhalt_BMS 4094 "Init" 4095 "Fehler"; +VAL_ 1631 TSK_Fahrzeugmasse_02 255 "Fehler"; +VAL_ 1631 TSK_Steigung_02 0 "Init_oder_nicht_verbaut" 255 "Fehler"; +VAL_ 1640 KL_LRH_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1640 KL_LRH_Stufe 0 "Stufe_niedrig" 1 "Stufe_mittel" 2 "Stufe_hoch" 3 "AUS"; +VAL_ 1640 HSH_Taster 0 "nicht_betaetigt" 1 "short_push" 2 "long_push" 3 "tbd"; +VAL_ 1640 FSH_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1640 KL_Zuheizer_Freigabe 0 "keine_Freigabe_Zuheizer" 1 "Zuheizerfreigabe"; +VAL_ 1640 KL_Beschlagsgefahr 0 "keine_Beschlagsgefahr" 1 "Beschlagsgefahr"; +VAL_ 1640 KRH_Soll_li 0 "aus" 1 "Stufe_1" 2 "Stufe_2" 3 "Stufe_3"; +VAL_ 1640 KRH_Soll_re 0 "aus" 1 "Stufe_1" 2 "Stufe_2" 3 "Stufe_3"; +VAL_ 1640 KL_Geblspng_Soll 0 "0V_Motorspannung" 252 "0V_sofort_Abschalten" 253 "0V_senken_mit_Rampe" 254 "reserviert" 255 "Fehler"; +VAL_ 1640 KL_Geblspng_Fond_Soll 0 "0V_Motorspannung" 252 "0V_sofort_Abschalten" 253 "0V_senken_mit_Rampe" 254 "reserviert" 255 "Fehler"; +VAL_ 1640 KL_I_Geblaese 255 "Fehler"; +VAL_ 1640 KL_Kompressorstrom_soll 1022 "Init" 1023 "Fehler"; +VAL_ 1640 KL_Umluftklappe_Status 0 "Frischluft" 1 "Teilumluft_10" 2 "Teilumluft_20" 3 "Teilumluft_30" 4 "Teilumluft_40" 5 "Teilumluft_50" 6 "Teilumluft_60" 7 "Teilumluft_70" 8 "Teilumluft_80" 9 "Teilumluft_90" 10 "Umluft" 14 "Init" 15 "Fehler"; +VAL_ 1640 KL_PTC_Verbauinfo 0 "kein_PTC" 1 "600W_geschaltet" 2 "1000W_geschaltet" 3 "1400W_LIN"; +VAL_ 1648 MO_ANC_Kennfeld_Anf 0 "Kennfeld_1" 1 "Uebergang_Kennfeld_2_nach_1" 2 "Uebergang_Kennfeld_1_nach_2" 3 "Kennfeld_2"; +VAL_ 1648 MO_Bremslicht_Reku 0 "Aus" 1 "Ein"; +VAL_ 1648 MO_StartStopp_PopUp 0 "Statuswechsel_ohne_Taster (Init)" 1 "StSt_per_Taster_deaktiviert" 2 "StSt_per_Taster_aktiviert" 3 "nicht verwendet"; +VAL_ 1648 MO1_Sperr_Info_WFS 0 "nicht_gesperrt" 1 "gesperrt"; +VAL_ 1648 MO1_Freigabe_Info_WFS 0 "ungueltig" 1 "gueltig"; +VAL_ 1648 MO_EPCL 0 "EPCL_aus_kein_Text" 1 "EPCL_gelb_Stoerung" 2 "EPCL_gelb_Leistungsbeschraenkung" 3 "EPCL_rot_Fzg_sicher_abstellen"; +VAL_ 1648 MO_Zylabsch_Texte_02 0 "ein_ZAS_generell_keine_ZAS_Anzeigen" 1 "ZAS_im_VMB" 2 "ZAS_im_ASB_1_Zyl_aktiv" 3 "ZAS_im_ASB_2_Zyl_aktiv" 4 "ZAS_im_ASB_3_Zyl_aktiv" 5 "ZAS_im_ASB_4_Zyl_aktiv" 6 "ZAS_im_ASB_5_Zyl_aktiv" 7 "ZAS_im_ASB_6_Zyl_aktiv" 8 "ZAS_im_ASB_8_Zyl_aktiv" 9 "ZAS_im_ASB_12_Zyl_aktiv" 13 "Uebergangsbetrieb" 14 "keine_ZAS_Anzeige_ggf_Stopp_Schub_Betrieb" 15 "ZAS_Stoerungs_Anzeige"; +VAL_ 1648 MO_Fahrzeugtyp 0 "Verbrenner_Fahrzeug" 1 "Hybrid" 2 "E_Fahrzeug" 3 "E_Fahrzeug_mit_Range_Extender" 4 "Brennstoffzellenfahrzeug" 5 "tbd" 6 "tbd" 7 "tbd"; +VAL_ 1648 MO_Abstellzeit 254 "Init" 255 "reserviert"; +VAL_ 1648 MO_Abstellzeit_Status 0 "Abstellzeit_nicht_berechnet" 1 "Abstellzeit_berechnet" 2 "Abstellzeit_Minimalwert" 3 "Abstellzeit_ungueltig"; +VAL_ 1648 MO1_Freigabe_Verfallsinfo_WFS 0 "verfaellt_nicht" 1 "verfaellt"; +VAL_ 1648 MO_Hybrid_StartStopp_LED 0 "LED_aus_und_Blinken_aus" 1 "LED_ein_und_Blinken_aus" 2 "LED_ein_und_Blinken_ein_50_percent" 3 "reserviert"; +VAL_ 1648 MO_Fehler_Zylabsch 0 "kein_Fehler" 1 "Notlauf_Vollmotorbetrieb" 2 "Notlauf_mindestens_einem_abgesch_Zylinder"; +VAL_ 1648 MO_Anzahl_Abgesch_Zyl 0 "Vollmotorbetrieb" 1 "1_Zylinder_abgeschaltet" 2 "2_Zylinder_abgeschaltet" 3 "3_Zylinder_abgeschaltet" 4 "4_Zylinder_abgeschaltet" 5 "5_Zylinder_abgeschaltet" 6 "6_Zylinder_abgeschaltet" 7 "8_Zylinder_abgeschaltet"; +VAL_ 1648 MO_Zylabsch_Texte 0 "keine_Texte" 1 "Zylinderabschaltung_deaktivieren" 2 "Zylinderabschaltung_aktivieren" 3 "Zylinderabschaltung_unruhig"; +VAL_ 1648 MO_Ethanol_BS_Texte 0 "kein_Text" 1 "E85_Warm_Up" 2 "FlexFuel_Warnung_Stufe_3" 3 "Warmfahrempfehlung_MQB__FlexFuel_Warnung_Stufe_1" 4 "FlexFuel_Warnung_Stufe_2" 5 "FlexFuel_Warnung_Stufe_4" 6 "E25_Warm_Up"; +VAL_ 1648 MO_Drehzahl_Warnung 0 "keinen_Warnhinweis_anzeigen" 1 "Warnhinweis_anzeigen"; +VAL_ 1648 MO_obere_Drehzahlgrenze 0 "Init"; +VAL_ 1710 SP_FT_oben 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_FT_unten 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_FT_links 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_FT_rechts 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_BT_oben 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_BT_unten 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_BT_links 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_BT_rechts 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_abklappen 0 "Spiegel_abklappen_nicht_aktiv" 1 "Spiegel_abklappen_aktiv"; +VAL_ 1710 SP_anklappen 0 "Spiegle_anklappen_nicht_aktiv" 1 "Spiegel_anklappen_aktiv"; +VAL_ 1710 SP_normieren 0 "Spiegel_nicht_normiert" 1 "Spiegel_normiert"; +VAL_ 1710 SP_Hzg_Taster 0 "nicht_betaetigt" 1 "betaetigt"; +VAL_ 1710 SP_S_oben 1 "Spiegelschalter in Stellung oben"; +VAL_ 1710 SP_S_unten 1 "Spiegelschalter in Stellung unten"; +VAL_ 1710 SP_S_links 1 "Spiegelschalter in Stellung links"; +VAL_ 1710 SP_S_rechts 1 "Spiegelschalter in Stellung rechts"; +VAL_ 1710 SP_Auswahl_li 1 "Spiegelschalter in Stellung Auswahl links"; +VAL_ 1710 SP_Auswahl_re 1 "Spiegelschalter in Stellung Auswahl rechts"; +VAL_ 1710 SP_ARA_Status 0 "TSG nicht im ARA-Modus" 1 "TSG im ARA-Modus"; +VAL_ 1710 SP_S_Klappen 1 "Spiegelschalter in Stellung Klappen"; +VAL_ 1710 SP_Verstellschalter_Fehler 0 "kein_Fehler" 1 "Fehler"; +VAL_ 1711 RV_Video_on 0 "Kamerabild wird nicht angezeigt" 1 "Kamerabild wird angezeigt"; +VAL_ 1711 RV_Dark_Screen 0 "Kamerabild nicht verdunkeln" 1 "Kamerabild verdunkeln"; +VAL_ 1711 RV_HMI_Mode 0 "Parkluecke (Modus 1)" 1 "Parallel zur Straߥ (Modus 2)" 2 "reserviert" 3 "Kalibrierung (nur Diagnose)"; +VAL_ 1711 RV_GL_side 0 "Guidelines_abgeschaltet" 1 "Guidelines_Anzeige_rechte_Seite" 2 "Guiedelines_Anzeige_linke_Seite" 3 "Guiedelines_Anzeige_beide_Seiten"; +VAL_ 1711 RV_System_aktiv 0 "System nicht betriebsbereit" 1 "System betriebsbereit"; +VAL_ 1711 RV_Reinigung_Anf 0 "nicht_reinigen" 1 "reinigen"; +VAL_ 1711 RV_Settings_enabled 0 "Menu 'Einstellungen' nicht aktiviert" 1 "Menu 'Einstellungen' aktiviert"; +VAL_ 1711 RV_Menu_Item 0 "HMI Mode als ausgewaehlt markiert" 1 "Helligkeit als ausgewaehlt markiert" 2 "Kontrast als ausgewaehlt markiert" 3 "Farbsaettigung als ausgewaehlt markiert"; +VAL_ 1711 SV_Video_on 0 "SideView_aus_/_nicht_verbaut" 1 "SideView_an"; +VAL_ 1711 RV_Calib_Fehler 0 "Kalibrierung_i.O." 1 "RearView_nicht_kalibriert"; +VAL_ 1711 RV_GL_Trailer_connect 0 "Guidelines_werden_angezeigt" 1 "Guidelines_wegen_angekoppeltem_Anh䮧er_deaktiviert"; +VAL_ 1711 RV_GL_Trunk_open 0 "Guidelines_werden_angezeigt" 1 "Guidelines_wegen_geöffneter_Heckklappe_deaktiviert"; +VAL_ 1711 RV_GL_LWS_Fehler 0 "Guidelines_werden_angezeigt" 1 "Guidelines_wegen_nicht_kalibriertem_Lenkwinkelsensor_deaktiviert"; +VAL_ 1711 ZFAS_Umfeldbeleuchtung_Anf 0 "nicht_angefordert" 1 "angefordert"; +VAL_ 1714 DGN_Verlernzaehler 255 "ungültiger Z䨬erstand oder kein gültiger Fahrzyklus"; +VAL_ 1714 UH_Monat 0 "Init" 14 "Relatives_Datum" 15 "Fehler"; +VAL_ 1714 UH_Tag 0 "Init"; +VAL_ 1714 Kombi_02_alt 0 "aktuell" 1 "veraltet"; +VAL_ 1714 Uhrzeit_01_alt 0 "aktuell" 1 "veraltet"; From 1ca879e54f438e8fa79bd967a3503a16a6fe171e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 18:51:09 +0100 Subject: [PATCH 519/653] Update carstate.py renaming signals and current state --- opendbc/car/volkswagen/carstate.py | 71 ++++++++++++++++-------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 386959b5a31..cbb09ba70c3 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -17,6 +17,7 @@ def __init__(self, CP): self.esp_hold_confirmation = False self.upscale_lead_car_signal = False self.eps_stock_values = False + self.curvature = 0. def create_button_events(self, pt_cp, buttons): button_events = [] @@ -264,10 +265,10 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret = structs.CarState() # Update vehicle speed and acceleration from ABS wheel speeds. ret.wheelSpeeds = self.get_wheel_speeds( - pt_cp.vl["MEB_ESP_01"]["VL_Radgeschw"], - pt_cp.vl["MEB_ESP_01"]["VR_Radgeschw"], - pt_cp.vl["MEB_ESP_01"]["HL_Radgeschw"], - pt_cp.vl["MEB_ESP_01"]["HR_Radgeschw"], + pt_cp.vl["ESC_51"]["VL_Radgeschw"], + pt_cp.vl["ESC_51"]["VR_Radgeschw"], + pt_cp.vl["ESC_51"]["HL_Radgeschw"], + pt_cp.vl["ESC_51"]["HR_Radgeschw"], ) ret.vEgoRaw = float(np.mean([ret.wheelSpeeds.fl, ret.wheelSpeeds.fr, ret.wheelSpeeds.rl, ret.wheelSpeeds.rr])) @@ -280,8 +281,11 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE - ret.yawRate = pt_cp.vl["MEB_ESP_04"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["MEB_ESP_04"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD - hca_status = self.CCP.hca_status_values.get(pt_cp.vl["MEB_EPS_01"]["LatCon_HCA_Status"]) + + ret.yawRate = pt_cp.vl["ESC_50"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["ESC_50"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD + self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] + + hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) # VW Emergency Assist status tracking and mitigation @@ -289,12 +293,12 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: #ret.carFaultedNonCritical = cam_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # prepared, not tested # Update gas, brakes, and gearshift. - ret.gasPressed = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] > 0 - ret.gas = pt_cp.vl["MEB_ESP_03"]["Accelerator_Pressure"] + ret.gasPressed = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] > 0 + ret.gas = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user - ret.brake = pt_cp.vl["MEB_ESP_01"]["Brake_Pressure"] - ret.parkingBrake = pt_cp.vl["MEB_EPB_01"]["EPB_Status"] in (1, 4) # EPB closing or closed - # regen braking bool(pt_cp.vl["MEB_ESP_04"]['Regen_Braking']) TODO + ret.brake = pt_cp.vl["ESC_51"]["Brake_Pressure"] + ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed + # regen braking bool(pt_cp.vl["ESC_50"]['Regen_Braking']) TODO # Update gear and/or clutch position data. ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) @@ -319,14 +323,14 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # and capture it for forwarding to the blind spot radar controller self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} - ret.stockFcw = bool(pt_cp.vl["MEB_ESP_05"]["FCW_Active"]) - ret.stockAeb = bool(pt_cp.vl["MEB_ESP_05"]["AEB_Active"]) + ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) + ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) - self.acc_type = ext_cp.vl["MEB_ACC_02"]["ACC_Typ"] - self.travel_assist_available = bool(ext_cp.vl["MEB_Travel_Assist_01"]["Travel_Assist_Available"]) if self.CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT else False + self.acc_type = ext_cp.vl["ACC_18"]["ACC_Typ"] + self.travel_assist_available = bool(ext_cp.vl["TA_01"]["Travel_Assist_Available"]) if self.CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT else False - ret.cruiseState.available = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (2, 3, 4, 5) - ret.cruiseState.enabled = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (3, 4, 5) + ret.cruiseState.available = pt_cp.vl["Motor_51"]["TSK_Status"] in (2, 3, 4, 5) + ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) if self.CP.pcmCruise: # Cruise Control mode; check for distance UI setting from the radar. @@ -334,11 +338,11 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) else: # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = bool(pt_cp.vl["MEB_Motor_01"]["TSK_Limiter_ausgewaehlt"]) + ret.cruiseState.nonAdaptive = bool(pt_cp.vl["Motor_51"]["TSK_Limiter_ausgewaehlt"]) - ret.accFaulted = pt_cp.vl["MEB_Motor_01"]["TSK_Status"] in (6, 7) + ret.accFaulted = pt_cp.vl["Motor_51"]["TSK_Status"] in (6, 7) - self.esp_hold_confirmation = bool(pt_cp.vl["MEB_ESP_05"]["ESP_Hold"]) + self.esp_hold_confirmation = bool(pt_cp.vl["VMM_02"]["ESP_Hold"]) ret.cruiseState.standstill = self.CP.pcmCruise and self.esp_hold_confirmation # Update ACC setpoint. When the setpoint is zero or there's an error, the @@ -492,16 +496,16 @@ def get_can_parsers_meb(CP): ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors ("Getriebe_11", 100), # From J743 Auto transmission control module ("ZV_02", 5), # From ZV - ("MEB_EPS_01", 100), # + ("QFK_01", 100), # From Steering ("ESP_21", 50), # - ("MEB_ABS_01", 50), # - ("MEB_ESP_01", 100), # - ("MEB_ESP_03", 10), # - ("MEB_ESP_04", 50), # - ("MEB_ESP_05", 50), # - ("MEB_EPB_01", 20), # - ("MEB_Light_01", 5), # - ("MEB_Motor_01", 50), # + ("EML_061", 50), # + ("ESC_51", 100), # + ("Motor_54", 10), # + ("ESC_50", 50), # + ("VMM_02", 50), # + ("Gateway_73", 20), # + ("SAM_01", 5), # + ("Motor_51", 50), # ] if CP.networkLocation == NetworkLocation.fwdCamera: @@ -556,13 +560,14 @@ class PqExtraSignals: class MebExtraSignals: # Additional signal and message lists for optional or bus-portable controllers fwd_radar_messages = [ - ("MEB_ACC_01", 17), # - ("MEB_ACC_02", 50), # - #("MEB_Distance_01", 25), # + ("MEB_ACC_01", 17), # + ("ACC_18", 50), # + ("AWV_03", 1), # Front Collision Detection (1 Hz when inactive, 50 Hz when active) + #("MEB_Distance_01", 25), # ] bsm_radar_messages = [ ("MEB_Side_Assist_01", 20), ] travel_assist_message = [ - ("MEB_Travel_Assist_01", 10), # + ("TA_01", 10), # ] From a35f7e514a0d59a483742560d15a6de63e0d3ef5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 18:53:43 +0100 Subject: [PATCH 520/653] Update values.py changed safety limits, ldw values --- opendbc/car/volkswagen/values.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index da376ec261e..72dcc5da19c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -80,9 +80,9 @@ def __init__(self, CP): self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m - self.CURVATURE_ERROR = 0.01 - self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0015, 0.00015]) # curvature safety limit up - self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[0., 5., 15.], angle_v=[0.005, 0.0034, 0.00034]) # curvature safety limit down + self.CURVATURE_ERROR = 0.01 # HCA_03 curvature error + self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.0015, 0.00015]) # curvature safety limit up + self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.002, 0.00035]) # curvature safety limit down self.CURVATURE_POWER_FACTOR = 4000 self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] @@ -98,16 +98,15 @@ def __init__(self, CP): Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [3]), ] - self.LDW_MESSAGES = { # verify TODO - "none": 0, # Nothing to display - "laneAssistUnavailChime": 1, # "Lane Assist currently not available." with chime - "laneAssistUnavailNoSensorChime": 3, # "Lane Assist not available. No sensor view." with chime - "laneAssistTakeOverUrgent": 4, # "Lane Assist: Please Take Over Steering" with urgent beep - "emergencyAssistUrgent": 6, # "Emergency Assist: Please Take Over Steering" with urgent beep - "laneAssistTakeOverChime": 7, # "Lane Assist: Please Take Over Steering" with chime - "laneAssistTakeOver": 8, # "Lane Assist: Please Take Over Steering" silent - "emergencyAssistChangingLanes": 9, # "Emergency Assist: Changing lanes..." with urgent beep - "laneAssistDeactivated": 10, # "Lane Assist deactivated." silent with persistent icon afterward + self.LDW_MESSAGES = { + "none": 0, # Nothing to display + "laneAssistTakeOverUrgent": 4, # "Lane Assist: Please Take Over Steering" (red) + "laneAssistTakeOver": 8, # "Lane Assist: Please Take Over Steering" (white) + } + self.LDW_SOUNDS = { + "None": 0, # No sound + "Chime": 1, # Play a chime + "Beep": 2, # Play a loud beep } else: From 8f4a89137660e492b18a50b3d8ef9bc322ed2adc Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 18:54:59 +0100 Subject: [PATCH 521/653] Update interface.py --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 20eb5ba3fe6..b2de21cc0fa 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -40,7 +40,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle - if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, MEB_EPS_01 + if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, QFK_01 ret.networkLocation = NetworkLocation.gateway else: ret.networkLocation = NetworkLocation.fwdCamera From 71253b63c047d110f5157fd8a4f982be53ff4071 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:10:13 +0100 Subject: [PATCH 522/653] Update carcontroller.py use curvature from car, correct max limiting steering --- opendbc/car/volkswagen/carcontroller.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index d5c04c1ebc5..337fb9c1bcd 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -51,11 +51,11 @@ def update(self, CC, CS, now_nanos): if CC.latActive: hca_enabled = True - current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) - apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) if CS.out.steeringPressed: # roughly sync with user input apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) + apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) steering_curvature_diff = abs(apply_curvature - current_curvature) @@ -83,8 +83,8 @@ def update(self, CC, CS, now_nanos): steering_power_boost = False if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True - current_curvature = -CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - apply_curvature = current_curvature # synchronize with current curvature + current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + apply_curvature = np.clip(current_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) # synchronize with current curvature steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, 0) else: hca_enabled = False @@ -145,11 +145,10 @@ def update(self, CC, CS, now_nanos): if self.CP.flags & VolkswagenFlags.MEB: # Logic to prevent car error with EPB: - # * send a few frames of HMS RAMP RELEASE command at the very begin of long override - # * send a few frames of HMS RAMP RELEASE command right at the end of active long control + # * send a few frames of HMS RAMP RELEASE command at the very begin of long overrideand and at the end of active long control accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel - + # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 @@ -166,7 +165,7 @@ def update(self, CC, CS, now_nanos): can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, long_override, CS.travel_assist_available)) - + else: accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 self.accel_last = accel @@ -183,8 +182,8 @@ def update(self, CC, CS, now_nanos): if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] - sound_alert = 1 if self.CP.flags & VolkswagenFlags.MEB: + sound_alert = self.CCP.LDW_SOUNDS["Chime"] if hud_alert == self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] else self.CCP.LDW_SOUNDS["None"] can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, CS.out.steeringPressed, hud_alert, hud_control, sound_alert)) else: From 31f21821070136b1a09a53b3ffe0170013767846 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:13:06 +0100 Subject: [PATCH 523/653] Update mebcan.py rename signals --- opendbc/car/volkswagen/mebcan.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index a75e7c69b6c..721275b317e 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -146,7 +146,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "SET_ME_0X9": 0x9, } - commands.append(packer.make_can_msg("MEB_ACC_02", bus, values)) + commands.append(packer.make_can_msg("ACC_18", bus, values)) if travel_assist_available: # satisfy car to prevent errors when pressing Travel Assist Button @@ -156,7 +156,7 @@ def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_cont "Travel_Assist_Available": 1, } - commands.append(packer.make_can_msg("MEB_Travel_Assist_01", bus, values_ta)) + commands.append(packer.make_can_msg("TA_01", bus, values_ta)) return commands From cdb5889a185e8cf8fedd54bbe411976f7f29c137 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:14:33 +0100 Subject: [PATCH 524/653] Update common.cc renaming and new signal --- opendbc/can/common.cc | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index 40ecc375873..866cafaa740 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -182,15 +182,16 @@ unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector } static const std::unordered_map> volkswagen_meb_crc_constants { - {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // MEB_TRAVEL_ASSIST_01 - {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // MEB_ESP_05 - {0x102, {0xD7, 0x12, 0x85, 0x7E, 0x0B, 0x34, 0xFA, 0x16, 0x7A, 0x25, 0x2D, 0x8F, 0x04, 0x8E, 0x5D, 0x35}}, // MEB_ESP_04 - {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // MEB_ESP_03 - {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_MOTOR_01 - {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // MEB_ESP_01 - {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // MEB_ABS_01 - {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // MEB_ACC_02 ACC - {0x13D, {0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}}, // MEB_EPS_01 EPS + {0x0DB, {0x09, 0xFA, 0xCA, 0x8E, 0x62, 0xD5, 0xD1, 0xF0, 0x31, 0xA0, 0xAF, 0xDA, 0x4D, 0x1A, 0x0A, 0x97}}, // AWV_03 Front Collision + {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // TA_01 Travel Assist + {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // VMM_02 + {0x102, {0xD7, 0x12, 0x85, 0x7E, 0x0B, 0x34, 0xFA, 0x16, 0x7A, 0x25, 0x2D, 0x8F, 0x04, 0x8E, 0x5D, 0x35}}, // ESC_50 + {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // Motor_54 + {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // Motor_51 + {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // ESC_51 + {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // EML_06 + {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // ACC_18 Distance Control + {0x13D, {0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}}, // QFK_01 Steering Status {0x86, {0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}}, // LWI_01 Steering Angle {0x9F, {0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}}, // LH_EPS_03 Electric Power Steering {0xAD, {0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}}, // Getriebe_11 Automatic Gearbox From 2aedfaf8350016b48d87c1d96b0c921671681a60 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:23:48 +0100 Subject: [PATCH 525/653] Update README.md hint self analzed signals in readme --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 0b6af2f39ff..463c22f8f4f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,9 @@ +

+ VW MEB DBC signals with MEB_ prefix are candidates and could be wrong or have incorrect scalings
+ The same is valid for following signals that were named with probably correct VW signal names:
+ EM1_01, AWV_03, ESC_51, ESC_50, VMM_01, Motor_51, VMM_02, QFK_01, Motor_54, ACC_18, SAM_01, Parken_01, EML_06, TA_01, APS_Master, Gateway_73
+

+

opendbc

From 1cdac78e073fbef9b2b8a17dca1490fab30ec054 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:40:39 +0100 Subject: [PATCH 526/653] Update values.py rename --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 72dcc5da19c..d321226d730 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -86,7 +86,7 @@ def __init__(self, CP): self.CURVATURE_POWER_FACTOR = 4000 self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] - self.hca_status_values = can_define.dv["MEB_EPS_01"]["LatCon_HCA_Status"] + self.hca_status_values = can_define.dv["QFK_01"]["LatCon_HCA_Status"] self.BUTTONS = [ Button(structs.CarState.ButtonEvent.Type.setCruise, "GRA_ACC_01", "GRA_Tip_Setzen", [1]), From 4662e3e0c16ede11b489bec579e9a9cf24465786 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:45:05 +0100 Subject: [PATCH 527/653] Update carstate.py fix renaming --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index cbb09ba70c3..409dc1ed816 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -498,7 +498,7 @@ def get_can_parsers_meb(CP): ("ZV_02", 5), # From ZV ("QFK_01", 100), # From Steering ("ESP_21", 50), # - ("EML_061", 50), # + ("EML_06", 50), # ("ESC_51", 100), # ("Motor_54", 10), # ("ESC_50", 50), # From b293c5427ce6d786f761ea8c4dd87637b08bf556 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Thu, 6 Feb 2025 19:48:51 +0100 Subject: [PATCH 528/653] Update vw_meb.dbc rename to counter and checksum for check --- opendbc/dbc/vw_meb.dbc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 31a9ba740f3..31a37ad5cc7 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -169,8 +169,8 @@ BO_ 192 EM1_01: 32 XXX SG_ Schubbetrieb : 79|1@0+ (1,0) [0|1] "" XXX BO_ 219 AWV_03: 48 XXX - SG_ CHK : 0|8@1+ (1,0) [0|255] "" XXX - SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX + SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX SG_ FCW_Active : 64|1@0+ (1,0) [0|1] "" XXX SG_ Pre_Brake_Fill : 76|1@0+ (1,0) [0|1] "" XXX From 23ac129ce0d4b28fb1b623401106e40f13a6353c Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 15:05:00 +0100 Subject: [PATCH 529/653] Update vw_meb.dbc current state --- opendbc/dbc/vw_meb.dbc | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 31a37ad5cc7..14c6922337b 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -513,6 +513,7 @@ BO_ 589 MEB_Side_Assist_02: 64 XXX BO_ 591 MEB_Distance_01: 64 XXX SG_ Unknown_01 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ Distance_Status : 13|2@1+ (1,0) [0|3] "" XXX SG_ Same_Lane_01_ObjectID : 16|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Left_Lane_01_ObjectID : 22|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX SG_ Right_Lane_01_ObjectID : 28|6@1+ (1,0) [0|63] "Unit_ObjectID" XXX @@ -650,6 +651,8 @@ BO_ 771 HCA_03: 24 XXX SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX SG_ Active : 66|1@1+ (1,0) [0|1] "" XXX +BO_ 792 MEB_Camera_03: 8 XXX + BO_ 795 ESP_24: 8 Gateway SG_ ESP_Lampe : 12|1@1+ (1,0) [0|1] "" Sub_Gateway SG_ ABS_Lampe : 13|1@1+ (1,0) [0|1] "" Sub_Gateway @@ -2057,24 +2060,57 @@ BO_ 1716 VIN_01: 8 Gateway_MQB SG_ VIN_16 m2 : 48|8@1+ (1,0) [0|255] "" Airbag_MQB SG_ VIN_17 m2 : 56|8@1+ (1,0) [0|255] "" Airbag_MQB +BO_ 316495015 MEB_Camera_04: 32 XXX + BO_ 316495049 SAL_01: 8 XXX SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX SG_ CNT : 8|4@1+ (1,0) [0|15] "" XXX + SG_ Brake_Unknown : 18|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Light_01 : 20|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_2 : 22|1@0+ (1,0) [0|1] "" XXX + SG_ Right_Blinker : 25|1@0+ (1,0) [0|1] "" XXX + SG_ Left_Blinker : 26|1@1+ (1,0) [0|3] "" XXX + SG_ Reverse_Light : 27|1@0+ (1,0) [0|1] "" XXX + SG_ Brake_Light_02 : 30|1@0+ (1,0) [0|1] "" XXX + SG_ Right_Blinker_02 : 44|1@1+ (1,0) [0|3] "" XXX + SG_ Left_Blinker_02 : 45|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 52|8@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_4 : 63|1@0+ (1,0) [0|1] "" XXX + +BO_ 316495081 MEB_Camera_05: 8 XXX BO_ 316495106 AAA_01: 8 XXX SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX +BO_ 316495140 MEB_Camera_06: 64 XXX + BO_ 316495165 HVL_01: 8 XXX SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX BO_ 380195935 IPA_02: 8 XXX +BO_ 380196019 MEB_Camera_07: 16 XXX + +BO_ 380196036 MEB_Camera_08: 8 XXX + +BO_ 389241616 MEB_Camera_09: 8 XXX + +BO_ 389241617 MEB_Camera_10: 8 XXX + +BO_ 401604687 MEB_Camera_11: 8 XXX + +BO_ 402522959 MEB_Camera_14: 8 XXX + BO_ 441800001 EML_02: 8 XXX SG_ CRC : 0|8@1+ (1,0) [0|255] "" XXX SG_ CHK : 8|4@1+ (1,0) [0|15] "" XXX +BO_ 441800082 MEB_Camera_12: 8 XXX + +BO_ 452984911 MEB_Camera_13: 8 XXX + CM_ BO_ 184 "Motorsteuergerät"; CM_ BO_ 192 "Motorsteuergerät"; CM_ BO_ 317 "Lenkungssteuergerät"; @@ -2083,7 +2119,6 @@ CM_ BO_ 522 "Steuergerät für Fahrzeugbewegung"; CM_ BO_ 1622 "Steuergerät für Lenkungsverriegelung"; CM_ BO_ 316495165 "Steuergerät ICAS1"; CM_ BO_ 441800001 "Steuergerät für Fahrzeugbewegung"; - VAL_ 64 AB_RGS_Anst 4 "aktiv_Niveau_1" 5 "aktiv_Niveau_2" 6 "aktiv_Niveau_3" 7 "aktiv_Niveau_4" 8 "deaktiviert"; VAL_ 64 AB_Front_Crash 0 "kein_Front_Crash" 1 "Front_Crash"; VAL_ 64 AB_Heck_Crash 0 "kein_Heck_Crash" 1 "Heck_Crash"; @@ -2265,6 +2300,7 @@ VAL_ 496 zFAS_Warnblinken 0 "Aus" 1 "Statisch" 2 "Taster" 3 "Statisch_ohne_WBT"; VAL_ 496 STP_Primaeranz 0 "keine_Anzeige" 1 "Verfuegbar" 2 "Aktiv" 3 "Uebernahme" 4 "Aktiv_Warnung" 5 "Nicht_Verfuegbar"; VAL_ 496 EA_Bremslichtblinken 0 "kein_Blinken" 1 "Anforderung_Bremslichtblinken"; VAL_ 496 EA_Blinken 0 "Kein_Blinken" 1 "Wechselblinken_links" 2 "Wechselblinken_rechts" 3 "Warnblinken" 4 "Warnblinken_Taster"; +VAL_ 591 Distance_Status 0 "Valid" 3 "Invalid"; VAL_ 619 Travel_Assist_Status 4 "enabled" 0 "disabled" 2 "ready" 3 "pre_ready"; VAL_ 619 Travel_Assist_Request 4 "enable" 3 "disable" 0 "no_request" 1 "error"; VAL_ 619 Travel_Assist_Available 0 "not_available" 1 "available"; From 9e42be297a854a5032e9c7b287688db821886fd0 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 15:06:37 +0100 Subject: [PATCH 530/653] Update values.py extra travel assist flag probably not needed --- opendbc/car/volkswagen/values.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index d321226d730..98b5edbffde 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -173,7 +173,6 @@ class WMI(StrEnum): class VolkswagenFlags(IntFlag): # Detected flags STOCK_HCA_PRESENT = 1 - TRAVEL_ASSIST_PRESENT = 8 # Static flags PQ = 2 From cadbfbfb5a758facd80c09edd489e6ed357a54c1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 15:09:18 +0100 Subject: [PATCH 531/653] Update carstate.py fix travel assist, no extra logic needed, it is present on cam bus even if not coded in car --- opendbc/car/volkswagen/carstate.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 409dc1ed816..dce3b8ae3d1 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -327,7 +327,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) self.acc_type = ext_cp.vl["ACC_18"]["ACC_Typ"] - self.travel_assist_available = bool(ext_cp.vl["TA_01"]["Travel_Assist_Available"]) if self.CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT else False + self.travel_assist_available = bool(cam_cp.vl["TA_01"]["Travel_Assist_Available"]) ret.cruiseState.available = pt_cp.vl["Motor_51"]["TSK_Status"] in (2, 3, 4, 5) ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) @@ -518,15 +518,14 @@ def get_can_parsers_meb(CP): if CP.networkLocation == NetworkLocation.fwdCamera: cam_messages += [ # sig_address, frequency - ("LDW_02", 10) # From R242 Driver assistance camera + ("LDW_02", 10), # From R242 Driver assistance camera + ("TA_01", 10), # From R242 Driver assistance camera (Travel Assist) ] else: # Radars are here on CANBUS.cam cam_messages += MebExtraSignals.fwd_radar_messages if CP.enableBsm: cam_messages += MebExtraSignals.bsm_radar_messages - if CP.flags & VolkswagenFlags.TRAVEL_ASSIST_PRESENT: - cam_messages += MebExtraSignals.travel_assist_message return { Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), @@ -568,6 +567,3 @@ class MebExtraSignals: bsm_radar_messages = [ ("MEB_Side_Assist_01", 20), ] - travel_assist_message = [ - ("TA_01", 10), # - ] From 5e500b9582478d0b00e63d8044304aeb2bb40ca3 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 15:10:08 +0100 Subject: [PATCH 532/653] Update interface.py remove ta logic, probably not needed --- opendbc/car/volkswagen/interface.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index b2de21cc0fa..3f55149472e 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -48,9 +48,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.networkLocation == NetworkLocation.gateway: ret.radarUnavailable = False - if 0x26B in fingerprint[2]: # MEB_TRAVEL_ASSIST_01 - ret.flags |= VolkswagenFlags.TRAVEL_ASSIST_PRESENT.value - else: # Set global MQB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] From 74ecccf5773505d84b090c4eba6ca45f337166ba Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 16:20:34 +0100 Subject: [PATCH 533/653] Update carstate.py fix signal sources, r242 is probably always present in these new cars --- opendbc/car/volkswagen/carstate.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 9b2b42afdca..89db4da49e0 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -524,14 +524,13 @@ def get_can_parsers_meb(CP): if CP.enableBsm: pt_messages += MebExtraSignals.bsm_radar_messages - cam_messages = [] - if CP.networkLocation == NetworkLocation.fwdCamera: - cam_messages += [ - # sig_address, frequency - ("LDW_02", 10), # From R242 Driver assistance camera - ("TA_01", 10), # From R242 Driver assistance camera (Travel Assist) - ] - else: + cam_messages = [ + # sig_address, frequency + ("LDW_02", 10), # From R242 Driver assistance camera + ("TA_01", 10), # From R242 Driver assistance camera (Travel Assist) + ] + + if CP.networkLocation == NetworkLocation.gateway: # Radars are here on CANBUS.cam cam_messages += MebExtraSignals.fwd_radar_messages if CP.enableBsm: From ea9d3193a8c13c10b281463e11eebe3ac9525b76 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:33:40 +0100 Subject: [PATCH 534/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 14c6922337b..b46ed674126 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -332,11 +332,20 @@ BO_ 313 VMM_02: 32 XXX BO_ 317 QFK_01: 32 XXX SG_ CHECKSUM : 0|8@1+ (1,0) [0|255] "" XXX SG_ COUNTER : 8|4@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_5 : 12|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_9 : 14|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_8 : 16|1@0+ (1,0) [0|1] "" XXX SG_ LatCon_HCA_Accept : 17|2@1+ (1,0) [0|3] "" XXX + SG_ NEW_SIGNAL_2 : 19|1@0+ (1,0) [0|1] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX + SG_ NEW_SIGNAL_1 : 23|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_6 : 30|3@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_7 : 34|3@0+ (1,0) [0|1] "" XXX SG_ Steering_Angle_VZ : 36|1@0+ (1,0) [0|1] "" XXX SG_ Curvature : 40|15@1+ (6.7e-06,0) [0|65535] "" XXX SG_ Curvature_VZ : 55|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_3 : 56|7@1+ (1,0) [0|63] "" XXX + SG_ NEW_SIGNAL_4 : 63|1@0+ (1,0) [0|1] "" XXX SG_ Steering_Angle : 76|17@1+ (0.00906,0) [0|32767] "" XXX BO_ 319 PreCrash_02: 8 Gateway From 60c5da4fad4af7c6b3660691158734197f2e929e Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 17:53:35 +0100 Subject: [PATCH 535/653] Update vw_meb.dbc --- opendbc/dbc/vw_meb.dbc | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index b46ed674126..e396222b91b 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -339,6 +339,7 @@ BO_ 317 QFK_01: 32 XXX SG_ NEW_SIGNAL_2 : 19|1@0+ (1,0) [0|1] "" XXX SG_ LatCon_HCA_Status : 20|3@1+ (1,0) [0|15] "" XXX SG_ NEW_SIGNAL_1 : 23|1@0+ (1,0) [0|1] "" XXX + SG_ NEW_SIGNAL_10 : 24|1@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_6 : 30|3@0+ (1,0) [0|1] "" XXX SG_ NEW_SIGNAL_7 : 34|3@0+ (1,0) [0|1] "" XXX SG_ Steering_Angle_VZ : 36|1@0+ (1,0) [0|1] "" XXX From f4f455475485e408d0df7dae34ea47ee163c6a77 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 18:13:14 +0100 Subject: [PATCH 536/653] Update mebcan.py add eps update from mqb for testing because of ea brake checks --- opendbc/car/volkswagen/mebcan.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 721275b317e..c7b09b64a22 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -32,6 +32,24 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, p return packer.make_can_msg("HCA_03", bus, values) +def create_eps_update(packer, bus, eps_stock_values, ea_simulated_torque): + values = {s: eps_stock_values[s] for s in [ + "COUNTER", # Sync counter value to EPS output + "EPS_Lenkungstyp", # EPS rack type + "EPS_Berechneter_LW", # Absolute raw steering angle + "EPS_VZ_BLW", # Raw steering angle sign + "EPS_HCA_Status", # EPS HCA control status + ]} + + values.update({ + # Absolute driver torque input and sign, with EA inactivity mitigation + "EPS_Lenkmoment": abs(ea_simulated_torque), + "EPS_VZ_Lenkmoment": 1 if ea_simulated_torque < 0 else 0, + }) + + return packer.make_can_msg("LH_EPS_03", bus, values) + + def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active From 6adbfec93252f69baee833affc95bfcb2c842fe5 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 18:15:11 +0100 Subject: [PATCH 537/653] Update interface.py add hca presence flag for MEB --- opendbc/car/volkswagen/interface.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 0cca5aded7e..da38f0d264e 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -47,6 +47,8 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.networkLocation == NetworkLocation.gateway: ret.radarUnavailable = False + ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value # for MEB HCA_03 should be always present + else: # Set global MQB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] From e14c0bbeaeac92d40657b0bee199aa2213aa4ad7 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Tue, 18 Feb 2025 18:38:05 +0100 Subject: [PATCH 538/653] Update interface.py commenting, TODO for anti EA intervention --- opendbc/car/volkswagen/interface.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index da38f0d264e..09540e25f20 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -47,7 +47,9 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.networkLocation == NetworkLocation.gateway: ret.radarUnavailable = False - ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value # for MEB HCA_03 should be always present + # TODO for anti EA intervention: I do not have the native Emegrency Assist and can not test + # also we do not get steering torque from OP for MEB + #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value # for MEB HCA_03 should be always present else: # Set global MQB parameters From 5525006db778b18752199391c4a43eaaf0dd27f1 Mon Sep 17 00:00:00 2001 From: infiniteCable <75014343+infiniteCable@users.noreply.github.com> Date: Wed, 19 Feb 2025 09:12:19 +0100 Subject: [PATCH 539/653] Update carstate.py camera should always be present for current plattforms --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 89db4da49e0..eae05cb3bf2 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -331,7 +331,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Consume factory LDW data relevant for factory SWA (Lane Change Assist) # and capture it for forwarding to the blind spot radar controller - self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} + self.ldw_stock_values = cam_cp.vl["LDW_02"] ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) From 3db9eece32a91987e31be7ecd7e321fbd543846e Mon Sep 17 00:00:00 2001 From: infiniteCable2 Date: Thu, 20 Feb 2025 18:41:28 +0100 Subject: [PATCH 540/653] add MEB safety and adapt after upstream safety movements --- opendbc/safety/__init__.py | 1 + opendbc/safety/safety.h | 3 + opendbc/safety/safety/safety_volkswagen_meb.h | 344 ++++++++++++++++++ opendbc/safety/safety_declarations.h | 1 + 4 files changed, 349 insertions(+) create mode 100644 opendbc/safety/safety/safety_volkswagen_meb.h diff --git a/opendbc/safety/__init__.py b/opendbc/safety/__init__.py index c2cac1b5081..8ddd1b96b2b 100644 --- a/opendbc/safety/__init__.py +++ b/opendbc/safety/__init__.py @@ -32,6 +32,7 @@ class Safety: SAFETY_FAW = 26 SAFETY_BODY = 27 SAFETY_HYUNDAI_CANFD = 28 + SAFETY_VOLKSWAGEN_MEB = 34 class ALTERNATIVE_EXPERIENCE: diff --git a/opendbc/safety/safety.h b/opendbc/safety/safety.h index 913109957cb..2832b3beaf8 100644 --- a/opendbc/safety/safety.h +++ b/opendbc/safety/safety.h @@ -24,6 +24,7 @@ // CAN-FD only safety modes #ifdef CANFD #include "safety/safety_hyundai_canfd.h" +#include "safety/safety_volkswagen_meb.h" #endif // from cereal.car.CarParams.SafetyModel @@ -53,6 +54,7 @@ #define SAFETY_FAW 26U #define SAFETY_BODY 27U #define SAFETY_HYUNDAI_CANFD 28U +#define SAFETY_VOLKSWAGEN_MEB 34U uint32_t GET_BYTES(const CANPacket_t *msg, int start, int len) { uint32_t ret = 0U; @@ -378,6 +380,7 @@ int set_safety_hooks(uint16_t mode, uint16_t param) { {SAFETY_FORD, &ford_hooks}, #ifdef CANFD {SAFETY_HYUNDAI_CANFD, &hyundai_canfd_hooks}, + {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, #endif #ifdef ALLOW_DEBUG {SAFETY_TESLA, &tesla_hooks}, diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h new file mode 100644 index 00000000000..dfc71de66c3 --- /dev/null +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -0,0 +1,344 @@ +#pragma once + +#include "safety_declarations.h" +#include "safety_volkswagen_common.h" + +#define MSG_ESC_51 0xFC // RX, for wheel speeds +#define MSG_Motor_54 0x14C // RX, for accel pedal +#define MSG_ESC_50 0x102 // RX, for yaw rate +#define MSG_VMM_02 0x139 // RX, for ESP hold management +#define MSG_EML_06 0x20A // RX, for yaw rate +#define MSG_HCA_03 0x303 // TX by OP, Heading Control Assist steering torque +#define MSG_QFK_01 0x13D // RX, for steering angle +#define MSG_MEB_ACC_01 0x300 // RX from ECU, for ACC status +#define MSG_ACC_18 0x14D // RX from ECU, for ACC status +#define MSG_GRA_ACC_01 0x12B // TX by OP, ACC control buttons for cancel/resume +#define MSG_MOTOR_14 0x3BE // RX from ECU, for brake switch status +#define MSG_LDW_02 0x397 // TX by OP, Lane line recognition and text alerts +#define MSG_Motor_51 0x10B // RX for TSK state +#define MSG_TA_01 0x26B // TX for Travel Assist status + +static uint8_t volkswagen_crc8_lut_8h2f[256]; // Static lookup table for CRC8 poly 0x2F, aka 8H2F/AUTOSAR +static int volkswagen_steer_power_prev = 0; + +static bool vw_meb_get_longitudinal_allowed_override(void) { + return controls_allowed && gas_pressed_prev; +} + +static bool vw_meb_max_limit_check(int val, const int MAX_VAL, const int MIN_VAL) { + return (val > MAX_VAL) || (val < MIN_VAL); +} + +// Safety checks for longitudinal actuation +static bool vw_meb_longitudinal_accel_checks(int desired_accel, const LongitudinalLimits limits, const int override_accel) { + bool accel_valid = get_longitudinal_allowed() && !vw_meb_max_limit_check(desired_accel, limits.max_accel, limits.min_accel); + bool accel_valid_override = vw_meb_get_longitudinal_allowed_override() && desired_accel == override_accel; + bool accel_inactive = desired_accel == limits.inactive_accel; + return !(accel_valid || accel_inactive || accel_valid_override); +} + +static uint32_t volkswagen_meb_get_checksum(const CANPacket_t *to_push) { + return (uint8_t)GET_BYTE(to_push, 0); +} + +static uint8_t volkswagen_meb_get_counter(const CANPacket_t *to_push) { + // MQB message counters are consistently found at LSB 8. + return (uint8_t)GET_BYTE(to_push, 1) & 0xFU; +} + +static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { + int addr = GET_ADDR(to_push); + int len = GET_LEN(to_push); + + // This is CRC-8H2F/AUTOSAR with a twist. See the OpenDBC implementation + // of this algorithm for a version with explanatory comments. + + uint8_t crc = 0xFFU; + for (int i = 1; i < len; i++) { + crc ^= (uint8_t)GET_BYTE(to_push, i); + crc = volkswagen_crc8_lut_8h2f[crc]; + } + + uint8_t counter = volkswagen_meb_get_counter(to_push); + if (addr == MSG_LH_EPS_03) { + crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; + } else if (addr == MSG_GRA_ACC_01) { + crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; + } else if (addr == MSG_QFK_01) { + crc ^= (uint8_t[]){0x20,0xCA,0x68,0xD5,0x1B,0x31,0xE2,0xDA,0x08,0x0A,0xD4,0xDE,0x9C,0xE4,0x35,0x5B}[counter]; + } else if (addr == MSG_ESC_51) { + crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; + } else if (addr == MSG_Motor_54) { + crc ^= (uint8_t[]){0x16,0x35,0x59,0x15,0x9A,0x2A,0x97,0xB8,0x0E,0x4E,0x30,0xCC,0xB3,0x07,0x01,0xAD}[counter]; + } else if (addr == MSG_ESC_50) { + crc ^= (uint8_t[]){0xD7,0x12,0x85,0x7E,0x0B,0x34,0xFA,0x16,0x7A,0x25,0x2D,0x8F,0x04,0x8E,0x5D,0x35}[counter]; + } else if (addr == MSG_VMM_02) { + crc ^= (uint8_t[]){0xED,0x03,0x1C,0x13,0xC6,0x23,0x78,0x7A,0x8B,0x40,0x14,0x51,0xBF,0x68,0x32,0xBA}[counter]; + } else if (addr == MSG_Motor_51) { + crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; + } else if (addr == MSG_MOTOR_14) { + crc ^= (uint8_t[]){0x1F,0x28,0xC6,0x85,0xE6,0xF8,0xB0,0x19,0x5B,0x64,0x35,0x21,0xE4,0xF7,0x9C,0x24}[counter]; + } else if (addr == MSG_EML_06) { + crc ^= (uint8_t[]){0x9D,0xE8,0x36,0xA1,0xCA,0x3B,0x1D,0x33,0xE0,0xD5,0xBB,0x5F,0xAE,0x3C,0x31,0x9F}[counter]; + } else { + // Undefined CAN message, CRC check expected to fail + } + crc = volkswagen_crc8_lut_8h2f[crc]; + + return (uint8_t)(crc ^ 0xFFU); +} + +static safety_config volkswagen_meb_init(uint16_t param) { + // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration + static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_GRA_ACC_01, 0, 8}, + {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}}; + + static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, + {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}, {MSG_TA_01, 0, 8}}; + + static RxCheck volkswagen_meb_rx_checks[] = { + {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_MOTOR_14, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, + {.msg = {{MSG_Motor_51, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{MSG_GRA_ACC_01, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 33U}, { 0 }, { 0 }}}, + {.msg = {{MSG_QFK_01, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_ESC_51, 0, 48, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_Motor_54, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, + {.msg = {{MSG_ESC_50, 0, 48, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{MSG_VMM_02, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{MSG_EML_06, 0, 64, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, + }; + + UNUSED(param); + + volkswagen_set_button_prev = false; + volkswagen_resume_button_prev = false; + volkswagen_steer_power_prev = 0; + +#ifdef ALLOW_DEBUG + volkswagen_longitudinal = GET_FLAG(param, FLAG_VOLKSWAGEN_LONG_CONTROL); +#endif + gen_crc_lookup_table_8(0x2F, volkswagen_crc8_lut_8h2f); + return volkswagen_longitudinal ? BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_LONG_TX_MSGS) : \ + BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); +} + +// lateral limits for curvature +static const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { + // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 + // for FORD enforce_angle_error is active with margin of 0.002 which could solve the issue, we have here + .max_steer = 29105, // 0.195 rad/m + .angle_deg_to_can = 149253.7313, // 1 / 6.7e-6 rad/m to can + .angle_rate_up_lookup = { + {5., 25., 25.}, + {0.0017, 0.00035, 0.00035} // in rad/m + }, + .angle_rate_down_lookup = { + {5., 25., 25.}, + {0.0022, 0.00055, 0.00055} + }, + //.max_angle_error = , // THIS WOULD ALLOW MORE ROOM FOR OUR RATE LIMITS see comment above, but we want correct safety limit checks? and + //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time + .inactive_angle_is_zero = true, +}; + +static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { + if (GET_BUS(to_push) == 0U) { + int addr = GET_ADDR(to_push); + + // Update in-motion state by sampling wheel speeds + if (addr == MSG_ESC_51) { + uint32_t fr = GET_BYTE(to_push, 10U) | GET_BYTE(to_push, 11U) << 8; + uint32_t rr = GET_BYTE(to_push, 14U) | GET_BYTE(to_push, 15U) << 8; + uint32_t rl = GET_BYTE(to_push, 12U) | GET_BYTE(to_push, 13U) << 8; + uint32_t fl = GET_BYTE(to_push, 8U) | GET_BYTE(to_push, 9U) << 8; + + vehicle_moving = (fr > 0U) || (rr > 0U) || (rl > 0U) || (fl > 0U); + + UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4 ) * 0.0075 / 3.6); + } + + // Update vehicle yaw rate for curvature checks + //if (addr == MSG_ESC_50) { + // float volkswagen_yaw_rate = (GET_BYTE(to_push, 5U) | ((GET_BYTE(to_push, 6U) & 0x3F) << 8 )) * 0.01; + + // bool volkswagen_yaw_rate_sign = GET_BIT(to_push, 54U); + // if (volkswagen_yaw_rate_sign) { + // volkswagen_yaw_rate *= -1; + // } + // + // float current_curvature = volkswagen_yaw_rate / MAX(vehicle_speed.values[0] / VEHICLE_SPEED_FACTOR, 0.1); + // // convert current curvature into units on CAN for comparison with desired curvature + // update_sample(&angle_meas, ROUND(current_curvature * VOLKSWAGEN_MEB_STEERING_LIMITS.angle_deg_to_can)); + //} + + if (addr == MSG_QFK_01) { // we do not need conversion deg to can, same scaling as HCA_03 curvature + int current_curvature = ((GET_BYTE(to_push, 5U) & 0x7F) << 8 | GET_BYTE(to_push, 4U)); + + bool current_curvature_sign = GET_BIT(to_push, 55U); + if (current_curvature_sign) { + current_curvature *= -1; + } + + update_sample(&angle_meas, current_curvature); + } + + // Update cruise state + if (addr == MSG_Motor_51) { + // When using stock ACC, enter controls on rising edge of stock ACC engage, exit on disengage + // Always exit controls on main switch off + // Signal: TSK_06.TSK_Status + int acc_status = ((GET_BYTE(to_push, 11U) >> 0) & 0x07U); + bool cruise_engaged = (acc_status == 3) || (acc_status == 4) || (acc_status == 5); + acc_main_on = cruise_engaged || (acc_status == 2); + + if (!volkswagen_longitudinal) { + pcm_cruise_check(cruise_engaged); + } + + if (!acc_main_on) { + controls_allowed = false; + } + } + + // update cruise buttons + if (addr == MSG_GRA_ACC_01) { + // If using openpilot longitudinal, enter controls on falling edge of Set or Resume with main switch on + // Signal: GRA_ACC_01.GRA_Tip_Setzen + // Signal: GRA_ACC_01.GRA_Tip_Wiederaufnahme + if (volkswagen_longitudinal) { + bool set_button = GET_BIT(to_push, 16U); + bool resume_button = GET_BIT(to_push, 19U); + if ((volkswagen_set_button_prev && !set_button) || (volkswagen_resume_button_prev && !resume_button)) { + controls_allowed = acc_main_on; + } + volkswagen_set_button_prev = set_button; + volkswagen_resume_button_prev = resume_button; + } + // Always exit controls on rising edge of Cancel + // Signal: GRA_ACC_01.GRA_Abbrechen + if (GET_BIT(to_push, 13U)) { + controls_allowed = false; + } + } + + // update brake pedal + if (addr == MSG_MOTOR_14) { + brake_pressed = GET_BIT(to_push, 28U); + } + + // update accel pedal + if (addr == MSG_Motor_54) { + int accel_pedal_value = GET_BYTE(to_push, 21U) - 37; + gas_pressed = accel_pedal_value != 0; + } + + generic_rx_checks((addr == MSG_HCA_03)); + } +} + +static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { + // longitudinal limits + // acceleration in m/s2 * 1000 to avoid floating point math + const LongitudinalLimits VOLKSWAGEN_MEB_LONG_LIMITS = { + .max_accel = 2000, + .min_accel = -3500, + .inactive_accel = 3010, // VW sends one increment above the max range when inactive + }; + + const int volkswagen_accel_override = 0; + + int addr = GET_ADDR(to_send); + bool tx = true; + + // Safety check for HCA_03 Heading Control Assist curvature + if (addr == MSG_HCA_03) { + int desired_curvature_raw = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); + + bool sign = GET_BIT(to_send, 39U); + if (!sign) { + desired_curvature_raw *= -1; + } + + bool steer_req = GET_BIT(to_send, 14U); + int steer_power = (GET_BYTE(to_send, 2U) >> 0) & 0x7FU; + + if (steer_angle_cmd_checks(desired_curvature_raw, steer_req, VOLKSWAGEN_MEB_STEERING_LIMITS)) { + tx = false; + + // steer power is still allowed to decrease to zero monotonously + // while controls are not allowed anymore + if (steer_req && steer_power != 0) { + if (steer_power < volkswagen_steer_power_prev) { + tx = true; + } + } + } + + if (!steer_req && steer_power != 0) { + tx = false; // steer power is not 0 when disabled + } + + volkswagen_steer_power_prev = steer_power; + } + + // Safety check for MSG_ACC_18 acceleration requests + // To avoid floating point math, scale upward and compare to pre-scaled safety m/s2 boundaries + if (addr == MSG_ACC_18) { + // WARNING: IF WE TAKE THE SIGNAL FROM THE CAR WHILE ACC ACTIVE AND BELOW ABOUT 3km/h, THE CAR ERRORS AND PUTS ITSELF IN PARKING MODE WITH EPB! + int desired_accel = ((((GET_BYTE(to_send, 4) & 0x7U) << 8) | GET_BYTE(to_send, 3)) * 5U) - 7220U; + + if (vw_meb_longitudinal_accel_checks(desired_accel, VOLKSWAGEN_MEB_LONG_LIMITS, volkswagen_accel_override)) { + tx = false; + } + } + + // FORCE CANCEL: ensuring that only the cancel button press is sent when controls are off. + // This avoids unintended engagements while still allowing resume spam + if ((addr == MSG_GRA_ACC_01) && !controls_allowed) { + // disallow resume and set: bits 16 and 19 + if ((GET_BYTE(to_send, 2) & 0x9U) != 0U) { + tx = false; + } + } + + return tx; +} + +static int volkswagen_meb_fwd_hook(int bus_num, int addr) { + int bus_fwd = -1; + + switch (bus_num) { + case 0: + bus_fwd = 2; + break; + case 2: + if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02)) { + // openpilot takes over LKAS steering control and related HUD messages from the camera + bus_fwd = -1; + } else if (volkswagen_longitudinal && ((addr == MSG_MEB_ACC_01) || (addr == MSG_ACC_18) || (addr == MSG_TA_01))) { + // openpilot takes over acceleration/braking control and related HUD messages from the stock ACC radar + bus_fwd = -1; + } else { + // Forward all remaining traffic from Extended CAN devices to J533 gateway + bus_fwd = 0; + } + break; + default: + // No other buses should be in use; fallback to do-not-forward + bus_fwd = -1; + break; + } + + return bus_fwd; +} + +const safety_hooks volkswagen_meb_hooks = { + .init = volkswagen_meb_init, + .rx = volkswagen_meb_rx_hook, + .tx = volkswagen_meb_tx_hook, + .fwd = volkswagen_meb_fwd_hook, + .get_counter = volkswagen_meb_get_counter, + .get_checksum = volkswagen_meb_get_checksum, + .compute_checksum = volkswagen_meb_compute_crc, +}; diff --git a/opendbc/safety/safety_declarations.h b/opendbc/safety/safety_declarations.h index b0e9588e957..e55ad4273f2 100644 --- a/opendbc/safety/safety_declarations.h +++ b/opendbc/safety/safety_declarations.h @@ -281,3 +281,4 @@ extern const safety_hooks tesla_hooks; extern const safety_hooks toyota_hooks; extern const safety_hooks volkswagen_mqb_hooks; extern const safety_hooks volkswagen_pq_hooks; +extern const safety_hooks volkswagen_meb_hooks; From 6e3d1486d7d7deed0f725623358746d57cca7c93 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 16:37:49 -0500 Subject: [PATCH 541/653] linting: line length and whitespace --- opendbc/car/volkswagen/carcontroller.py | 24 ++++++++++++----------- opendbc/car/volkswagen/carstate.py | 10 +++++----- opendbc/car/volkswagen/interface.py | 2 +- opendbc/car/volkswagen/mebcan.py | 15 +++++++------- opendbc/car/volkswagen/radar_interface.py | 4 ++-- opendbc/car/volkswagen/values.py | 6 +++--- 6 files changed, 32 insertions(+), 29 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 337fb9c1bcd..715d3bdcd79 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -57,7 +57,8 @@ def update(self, CC, CS, now_nanos): apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) - steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) + steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], + [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) steering_curvature_diff = abs(apply_curvature - current_curvature) steering_curvature_increase = max(0, abs(apply_curvature) - abs(current_curvature)) steering_curvature_change = np.interp(CS.out.vEgoRaw, [0., 3.], [steering_curvature_diff, steering_curvature_increase]) @@ -78,7 +79,7 @@ def update(self, CC, CS, now_nanos): steering_power = self.steering_power_last steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False - + else: steering_power_boost = False if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero @@ -94,7 +95,7 @@ def update(self, CC, CS, now_nanos): can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, steering_power_boost)) self.apply_curvature_last = apply_curvature self.steering_power_last = steering_power - + else: # Logic to avoid HCA state 4 "refused": # * Don't steer unless HCA is in state 3 "ready" or 5 "active" @@ -148,7 +149,7 @@ def update(self, CC, CS, now_nanos): # * send a few frames of HMS RAMP RELEASE command at the very begin of long overrideand and at the end of active long control accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 self.accel_last = accel - + # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly long_override = CC.cruiseControl.override or CS.out.gasPressed self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 @@ -157,19 +158,19 @@ def update(self, CC, CS, now_nanos): # 1 frame of long_disabling is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 long_disabling = not CC.enabled and self.long_disabled_counter < 5 - + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, long_override) + CS.esp_hold_confirmation, long_override) acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, CS.esp_hold_confirmation, long_override, long_override_begin, long_disabling) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, long_override, CS.travel_assist_available)) - + else: accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 self.accel_last = accel - + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) @@ -179,7 +180,7 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.LDW_STEP == 0: hud_alert = 0 sound_alert = 0 - + if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] if self.CP.flags & VolkswagenFlags.MEB: @@ -197,8 +198,9 @@ def update(self, CC, CS, now_nanos): acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, hud_control.leadVisible, - hud_control.leadDistanceBars, CS.esp_hold_confirmation, distance, desired_gap)) + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, + hud_control.leadVisible, hud_control.leadDistanceBars, CS.esp_hold_confirmation, + distance, desired_gap)) else: lead_distance = 0 diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index eae05cb3bf2..e2ef1f4c696 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -270,7 +270,7 @@ def update_pq(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.frame += 1 return ret - + def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret = structs.CarState() # Update vehicle speed and acceleration from ABS wheel speeds. @@ -291,10 +291,10 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE - + ret.yawRate = pt_cp.vl["ESC_50"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["ESC_50"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] - + hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) @@ -492,7 +492,7 @@ def get_can_parsers_pq(CP): Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CANBUS.cam), } - + @staticmethod def get_can_parsers_meb(CP): pt_messages = [ @@ -529,7 +529,7 @@ def get_can_parsers_meb(CP): ("LDW_02", 10), # From R242 Driver assistance camera ("TA_01", 10), # From R242 Driver assistance camera (Travel Assist) ] - + if CP.networkLocation == NetworkLocation.gateway: # Radars are here on CANBUS.cam cam_messages += MebExtraSignals.fwd_radar_messages diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 01ee25ce2ff..5fbe3707ab6 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -31,7 +31,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # https://blog.willemmelching.nl/carhacking/2022/01/02/vw-part1/ # Panda ALLOW_DEBUG firmware required. ret.dashcamOnly = True - + elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index c7b09b64a22..a7b281666a7 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -19,7 +19,7 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, power_boost): - # active lateral control deactivates active steering wheel centering + # active lateral control deactivates active steering wheel centering values = { "Curvature": abs(apply_curvature), # in rad/m "VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, @@ -52,7 +52,7 @@ def create_eps_update(packer, bus, eps_stock_values, ea_simulated_torque): def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active - + values = {} if len(ldw_stock_values): values = {s: ldw_stock_values[s] for s in [ @@ -72,7 +72,7 @@ def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_p "LDW_Texte": hud_alert, }) return packer.make_can_msg("LDW_02", bus, values) - + def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resume=False): values = {s: gra_stock_values[s] for s in [ @@ -89,7 +89,7 @@ def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resu "GRA_Tip_Wiederaufnahme": resume, }) return packer.make_can_msg("GRA_ACC_01", bus, values) - + def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): @@ -133,7 +133,8 @@ def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, return acc_hold_type -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, esp_hold, override, travel_assist_available): +def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, + esp_hold, override, travel_assist_available): # active longitudinal control disables one pedal driving (regen mode) while using overriding mechnism commands = [] @@ -199,9 +200,9 @@ def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, ove def get_desired_gap(distance_bars, desired_gap, current_gap_signal): # mapping desired gap to correct signal of corresponding distance bar gap = 0 - + if distance_bars == current_gap_signal: - gap = desired_gap + gap = desired_gap return gap diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index eca9625a9d5..285de9ae86c 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -18,7 +18,7 @@ def get_radar_can_parser(CP): return None return CANParser(DBC[CP.carFingerprint][Bus.radar], messages, 2) - + class RadarInterface(RadarInterfaceBase): def __init__(self, CP): @@ -76,7 +76,7 @@ def _update(self, updated_messages): else: ret.errors = ["canError"] return ret - + for object_id, data in active_objects.items(): if object_id not in self.pts: self.pts[object_id] = structs.RadarData.RadarPoint() diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 63068020834..e095f615dc3 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -69,7 +69,7 @@ def __init__(self, CP): "laneAssistTakeOver": 4, # "Lane Assist: Please Take Over Steering" "laneAssistDeactivTrailer": 5, # "Lane Assist: no function with trailer" } - + elif CP.flags & VolkswagenFlags.MEB: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz @@ -190,8 +190,8 @@ class VolkswagenMQBPlatformConfig(PlatformConfig): # on camera-integrated cars, as we lose too many ECUs to reliably identify the vehicle chassis_codes: set[str] = field(default_factory=set) wmis: set[WMI] = field(default_factory=set) - - + + @dataclass class VolkswagenMEBPlatformConfig(PlatformConfig): dbc_dict: DbcDict = field(default_factory=lambda: {Bus.pt: 'vw_meb', Bus.radar: 'vw_meb'}) From 3eab2a399531e5a2f96fb2105cbb6a744b32a0f6 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 16:38:37 -0500 Subject: [PATCH 542/653] linting: unused imports --- opendbc/car/volkswagen/mebcan.py | 2 -- opendbc/car/volkswagen/radar_interface.py | 3 --- 2 files changed, 5 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index a7b281666a7..5b4c519cd99 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,5 +1,3 @@ -from opendbc.car.common.conversions import Conversions as CV - ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 285de9ae86c..77122817f33 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -1,9 +1,6 @@ -import math - from opendbc.can.parser import CANParser from opendbc.car import Bus, structs from opendbc.car.interfaces import RadarInterfaceBase -from opendbc.car.common.conversions import Conversions as CV from opendbc.car.volkswagen.values import DBC, VolkswagenFlags RADAR_ADDR = 0x24F From aa141a9b317c7ddc794220fadc0050eae2a46051 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 16:49:59 -0500 Subject: [PATCH 543/653] temporary test route --- opendbc/car/tests/routes.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/tests/routes.py b/opendbc/car/tests/routes.py index 00ef5a7eaaf..3cbf62e3772 100644 --- a/opendbc/car/tests/routes.py +++ b/opendbc/car/tests/routes.py @@ -263,6 +263,7 @@ class CarTestRoute(NamedTuple): CarTestRoute("07667b885add75fd|2021-01-23--19-48-42", VOLKSWAGEN.AUDI_A3_MK3), CarTestRoute("6c6b466346192818|2021-06-06--14-17-47", VOLKSWAGEN.AUDI_Q2_MK1), CarTestRoute("0cd0b7f7e31a3853|2021-12-03--03-12-05", VOLKSWAGEN.AUDI_Q3_MK2), + CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.CUPRA_BORN_MK1), # FIXME: temporary, replace later CarTestRoute("8f205bdd11bcbb65|2021-03-26--01-00-17", VOLKSWAGEN.SEAT_ATECA_MK1), CarTestRoute("fc6b6c9a3471c846|2021-05-27--13-39-56", VOLKSWAGEN.SEAT_ATECA_MK1), # Leon CarTestRoute("0bbe367c98fa1538|2023-03-04--17-46-11", VOLKSWAGEN.SKODA_FABIA_MK4), From 196e6cd9a00d9bbddadc5750d18fbda14ffd9ba9 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 18:53:06 -0500 Subject: [PATCH 544/653] safety test checkpoint --- opendbc/safety/tests/common.py | 3 +- opendbc/safety/tests/test_volkswagen_meb.py | 225 ++++++++++++++++++++ 2 files changed, 227 insertions(+), 1 deletion(-) create mode 100755 opendbc/safety/tests/test_volkswagen_meb.py diff --git a/opendbc/safety/tests/common.py b/opendbc/safety/tests/common.py index 2287227e9e2..a8e5aecf91e 100644 --- a/opendbc/safety/tests/common.py +++ b/opendbc/safety/tests/common.py @@ -769,7 +769,8 @@ def test_tx_hook_on_wrong_safety_mode(self): continue if attr.startswith('TestHyundaiCanfd') and current_test.startswith('TestHyundaiCanfd'): continue - if {attr, current_test}.issubset({'TestVolkswagenMqbSafety', 'TestVolkswagenMqbStockSafety', 'TestVolkswagenMqbLongSafety'}): + if {attr, current_test}.issubset({'TestVolkswagenMqbSafety', 'TestVolkswagenMqbStockSafety', 'TestVolkswagenMqbLongSafety', + 'TestVolkswagenMebSafety', 'TestVolkswagenMebStockSafety', 'TestVolkswagenMebLongSafety',}): continue # overlapping TX addrs, but they're not actuating messages for either car diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py new file mode 100755 index 00000000000..9f79ea2f246 --- /dev/null +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -0,0 +1,225 @@ +#!/usr/bin/env python3 +import unittest +import numpy as np +from opendbc.car.structs import CarParams +from opendbc.safety.tests.libsafety import libsafety_py +import opendbc.safety.tests.common as common +from opendbc.safety.tests.common import CANPackerPanda +from opendbc.car.volkswagen.values import VolkswagenSafetyFlags + +MAX_ACCEL = 2.0 +MIN_ACCEL = -3.5 + +MSG_LH_EPS_03 = 0x9F # RX from EPS, for driver steering torque +MSG_ESC_51 = 0xFC # RX, for wheel speeds +MSG_Motor_54 = 0x14C # RX, for accel pedal +MSG_ESC_50 = 0x102 # RX, for yaw rate +MSG_VMM_02 = 0x139 # RX, for ESP hold management +MSG_EML_06 = 0x20A # RX, for yaw rate +MSG_HCA_03 = 0x303 # TX by OP, Heading Control Assist steering torque +MSG_QFK_01 = 0x13D # RX, for steering angle +MSG_MEB_ACC_01 = 0x300 # RX from ECU, for ACC status +MSG_ACC_18 = 0x14D # RX from ECU, for ACC status +MSG_GRA_ACC_01 = 0x12B # TX by OP, ACC control buttons for cancel/resume +MSG_MOTOR_14 = 0x3BE # RX from ECU, for brake switch status +MSG_LDW_02 = 0x397 # TX by OP, Lane line recognition and text alerts +MSG_Motor_51 = 0x10B # RX for TSK state +MSG_TA_01 = 0x26B # TX for Travel Assist status + +class TestVolkswagenMebSafety(common.PandaCarSafetyTest): + STANDSTILL_THRESHOLD = 0 + RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_03,)} + + MAX_RATE_UP = 4 + MAX_RATE_DOWN = 10 + MAX_TORQUE = 300 + MAX_RT_DELTA = 75 + RT_INTERVAL = 250000 + + DRIVER_TORQUE_ALLOWANCE = 80 + DRIVER_TORQUE_FACTOR = 3 + + @classmethod + def setUpClass(cls): + if cls.__name__ == "TestVolkswagenMebSafety": + cls.packer = None + cls.safety = None + raise unittest.SkipTest + + def _speed_msg(self, speed): + values = {"%s_Radgeschw" % s: speed for s in ["HL", "HR", "VL", "VR"]} + return self.packer.make_can_msg_panda("ESC_51", 0, values) + + # TODO: does MEB have a usable redundant brake signal? + # Driver brake pressure over threshold + # def _esp_05_msg(self, brake): + # values = {"ESP_Fahrer_bremst": brake} + # return self.packer.make_can_msg_panda("ESP_05", 0, values) + + # TODO: consolidate with MQB + # Brake pedal switch + def _motor_14_msg(self, brake): + values = {"MO_Fahrer_bremst": brake} + return self.packer.make_can_msg_panda("Motor_14", 0, values) + + def _user_brake_msg(self, brake): + return self._motor_14_msg(brake) + + # Driver throttle input + def _user_gas_msg(self, gas): + values = {"Accelerator_Pressure": gas} + return self.packer.make_can_msg_panda("Motor_54", 0, values) + + # TODO: simplify to _pcm_status_msg, consolidate with MQB + # ACC engagement status + def _tsk_status_msg(self, enable, main_switch=True): + if main_switch: + tsk_status = 3 if enable else 2 + else: + tsk_status = 0 + values = {"TSK_Status": tsk_status} + return self.packer.make_can_msg_panda("Motor_51", 0, values) + + def _pcm_status_msg(self, enable): + return self._tsk_status_msg(enable) + + # TODO: consolidate with MQB + # Driver steering input torque + def _torque_driver_msg(self, torque): + values = {"EPS_Lenkmoment": abs(torque), "EPS_VZ_Lenkmoment": torque < 0} + return self.packer.make_can_msg_panda("LH_EPS_03", 0, values) + + # FIXME: replace with curvature control + # openpilot steering output torque + # def _torque_cmd_msg(self, torque, steer_req=1): + # pass + + # TODO: consolidate with MQB + # Cruise control buttons + def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=2): + values = {"GRA_Abbrechen": cancel, "GRA_Tip_Setzen": _set, "GRA_Tip_Wiederaufnahme": resume} + return self.packer.make_can_msg_panda("GRA_ACC_01", bus, values) + + # TODO: add MEB ACC messages + # Acceleration request to drivetrain coordinator + # def _acc_06_msg(self, accel): + # values = {"ACC_Sollbeschleunigung_02": accel} + # return self.packer.make_can_msg_panda("ACC_06", 0, values) + + # Acceleration request to drivetrain coordinator + # def _acc_07_msg(self, accel, secondary_accel=3.02): + # values = {"ACC_Sollbeschleunigung_02": accel, "ACC_Folgebeschl": secondary_accel} + # return self.packer.make_can_msg_panda("ACC_07", 0, values) + + # TODO: re-enable if a usable redundant brake signal is found + # Verify brake_pressed is true if either the switch or pressure threshold signals are true + # def test_redundant_brake_signals(self): + # test_combinations = [(True, True, True), (True, True, False), (True, False, True), (False, False, False)] + # for brake_pressed, motor_14_signal, esp_05_signal in test_combinations: + # self._rx(self._motor_14_msg(False)) + # self._rx(self._esp_05_msg(False)) + # self.assertFalse(self.safety.get_brake_pressed_prev()) + # self._rx(self._motor_14_msg(motor_14_signal)) + # self._rx(self._esp_05_msg(esp_05_signal)) + # self.assertEqual(brake_pressed, self.safety.get_brake_pressed_prev(), + # f"expected {brake_pressed=} with {motor_14_signal=} and {esp_05_signal=}") + + # TODO: consolidate with MQB + def test_torque_measurements(self): + # TODO: make this test work with all cars + self._rx(self._torque_driver_msg(50)) + self._rx(self._torque_driver_msg(-50)) + self._rx(self._torque_driver_msg(0)) + self._rx(self._torque_driver_msg(0)) + self._rx(self._torque_driver_msg(0)) + self._rx(self._torque_driver_msg(0)) + + self.assertEqual(-50, self.safety.get_torque_driver_min()) + self.assertEqual(50, self.safety.get_torque_driver_max()) + + self._rx(self._torque_driver_msg(0)) + self.assertEqual(0, self.safety.get_torque_driver_max()) + self.assertEqual(-50, self.safety.get_torque_driver_min()) + + self._rx(self._torque_driver_msg(0)) + self.assertEqual(0, self.safety.get_torque_driver_max()) + self.assertEqual(0, self.safety.get_torque_driver_min()) + + +class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_LH_EPS_03, 2], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2]] + FWD_BLACKLISTED_ADDRS = {0: [MSG_LH_EPS_03], 2: [MSG_HCA_03, MSG_LDW_02]} + FWD_BUS_LOOKUP = {0: 2, 2: 0} + + def setUp(self): + self.packer = CANPackerPanda("vw_meb") + self.safety = libsafety_py.libsafety + self.safety.set_safety_hooks(CarParams.SafetyModel.volkswagenMeb, 0) + self.safety.init_tests() + + def test_spam_cancel_safety_check(self): + self.safety.set_controls_allowed(0) + self.assertTrue(self._tx(self._gra_acc_01_msg(cancel=1))) + self.assertFalse(self._tx(self._gra_acc_01_msg(resume=1))) + self.assertFalse(self._tx(self._gra_acc_01_msg(_set=1))) + # do not block resume if we are engaged already + self.safety.set_controls_allowed(1) + self.assertTrue(self._tx(self._gra_acc_01_msg(resume=1))) + + +class TestVolkswagenMebLongSafety(TestVolkswagenMebSafety): + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_LH_EPS_03, 2], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] + FWD_BLACKLISTED_ADDRS = {0: [MSG_LH_EPS_03], 2: [MSG_HCA_03, MSG_LDW_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} + FWD_BUS_LOOKUP = {0: 2, 2: 0} + INACTIVE_ACCEL = 3.01 + + def setUp(self): + self.packer = CANPackerPanda("vw_meb") + self.safety = libsafety_py.libsafety + self.safety.set_safety_hooks(CarParams.SafetyModel.volkswagenMeb, VolkswagenSafetyFlags.LONG_CONTROL) + self.safety.init_tests() + + # stock cruise controls are entirely bypassed under openpilot longitudinal control + def test_disable_control_allowed_from_cruise(self): + pass + + def test_enable_control_allowed_from_cruise(self): + pass + + def test_cruise_engaged_prev(self): + pass + + def test_set_and_resume_buttons(self): + for button in ["set", "resume"]: + # ACC main switch must be on, engage on falling edge + self.safety.set_controls_allowed(0) + self._rx(self._tsk_status_msg(False, main_switch=False)) + self._rx(self._gra_acc_01_msg(_set=(button == "set"), resume=(button == "resume"), bus=0)) + self.assertFalse(self.safety.get_controls_allowed(), f"controls allowed on {button} with main switch off") + self._rx(self._tsk_status_msg(False, main_switch=True)) + self._rx(self._gra_acc_01_msg(_set=(button == "set"), resume=(button == "resume"), bus=0)) + self.assertFalse(self.safety.get_controls_allowed(), f"controls allowed on {button} rising edge") + self._rx(self._gra_acc_01_msg(bus=0)) + self.assertTrue(self.safety.get_controls_allowed(), f"controls not allowed on {button} falling edge") + + def test_cancel_button(self): + # Disable on rising edge of cancel button + self._rx(self._tsk_status_msg(False, main_switch=True)) + self.safety.set_controls_allowed(1) + self._rx(self._gra_acc_01_msg(cancel=True, bus=0)) + self.assertFalse(self.safety.get_controls_allowed(), "controls allowed after cancel") + + def test_main_switch(self): + # Disable as soon as main switch turns off + self._rx(self._tsk_status_msg(False, main_switch=True)) + self.safety.set_controls_allowed(1) + self._rx(self._tsk_status_msg(False, main_switch=False)) + self.assertFalse(self.safety.get_controls_allowed(), "controls allowed after ACC main switch off") + + # TODO: implement this for MEB + def test_accel_safety_check(self): + pass + + +if __name__ == "__main__": + unittest.main() From fbcb27e523c77140a3f06b883b1eba75dad9c647 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 18:54:38 -0500 Subject: [PATCH 545/653] fix LH_EPS_03 filtering for EA mitigation --- opendbc/safety/safety/safety_volkswagen_meb.h | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index dfc71de66c3..d096b4b99dc 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -58,7 +58,7 @@ static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { crc ^= (uint8_t)GET_BYTE(to_push, i); crc = volkswagen_crc8_lut_8h2f[crc]; } - + uint8_t counter = volkswagen_meb_get_counter(to_push); if (addr == MSG_LH_EPS_03) { crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; @@ -92,7 +92,7 @@ static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_GRA_ACC_01, 0, 8}, {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}}; - + static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}, {MSG_TA_01, 0, 8}}; @@ -125,7 +125,7 @@ static safety_config volkswagen_meb_init(uint16_t param) { // lateral limits for curvature static const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { - // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 + // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 // for FORD enforce_angle_error is active with margin of 0.002 which could solve the issue, we have here .max_steer = 29105, // 0.195 rad/m .angle_deg_to_can = 149253.7313, // 1 / 6.7e-6 rad/m to can @@ -138,7 +138,7 @@ static const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { {0.0022, 0.00055, 0.00055} }, //.max_angle_error = , // THIS WOULD ALLOW MORE ROOM FOR OUR RATE LIMITS see comment above, but we want correct safety limit checks? and - //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time + //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time .inactive_angle_is_zero = true, }; @@ -166,7 +166,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // if (volkswagen_yaw_rate_sign) { // volkswagen_yaw_rate *= -1; // } - // + // // float current_curvature = volkswagen_yaw_rate / MAX(vehicle_speed.values[0] / VEHICLE_SPEED_FACTOR, 0.1); // // convert current curvature into units on CAN for comparison with desired curvature // update_sample(&angle_meas, ROUND(current_curvature * VOLKSWAGEN_MEB_STEERING_LIMITS.angle_deg_to_can)); @@ -174,7 +174,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { if (addr == MSG_QFK_01) { // we do not need conversion deg to can, same scaling as HCA_03 curvature int current_curvature = ((GET_BYTE(to_push, 5U) & 0x7F) << 8 | GET_BYTE(to_push, 4U)); - + bool current_curvature_sign = GET_BIT(to_push, 55U); if (current_curvature_sign) { current_curvature *= -1; @@ -247,7 +247,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { }; const int volkswagen_accel_override = 0; - + int addr = GET_ADDR(to_send); bool tx = true; @@ -268,7 +268,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // steer power is still allowed to decrease to zero monotonously // while controls are not allowed anymore - if (steer_req && steer_power != 0) { + if (steer_req && steer_power != 0) { if (steer_power < volkswagen_steer_power_prev) { tx = true; } @@ -310,7 +310,13 @@ static int volkswagen_meb_fwd_hook(int bus_num, int addr) { switch (bus_num) { case 0: - bus_fwd = 2; + if (addr == MSG_LH_EPS_03) { + // openpilot needs to replace apparent driver steering input torque to pacify VW Emergency Assist + bus_fwd = -1; + } else { + // Forward all remaining traffic from Extended CAN onward + bus_fwd = 2; + } break; case 2: if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02)) { From e52c77ee79dc4facfc6877f27af08025a803f36c Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 18:57:49 -0500 Subject: [PATCH 546/653] fix safety monitoring of driver input torque --- opendbc/safety/safety/safety_volkswagen_meb.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d096b4b99dc..d813be68720 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -158,6 +158,18 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4 ) * 0.0075 / 3.6); } + // Update driver input torque samples + // Signal: LH_EPS_03.EPS_Lenkmoment (absolute torque) + // Signal: LH_EPS_03.EPS_VZ_Lenkmoment (direction) + if (addr == MSG_LH_EPS_03) { + int torque_driver_new = GET_BYTE(to_push, 5) | ((GET_BYTE(to_push, 6) & 0x1FU) << 8); + int sign = (GET_BYTE(to_push, 6) & 0x80U) >> 7; + if (sign == 1) { + torque_driver_new *= -1; + } + update_sample(&torque_driver, torque_driver_new); + } + // Update vehicle yaw rate for curvature checks //if (addr == MSG_ESC_50) { // float volkswagen_yaw_rate = (GET_BYTE(to_push, 5U) | ((GET_BYTE(to_push, 6U) & 0x3F) << 8 )) * 0.01; @@ -238,6 +250,8 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { + // FIXME: needs curvature-based lateral limits, with power backoff from driver input torque + // longitudinal limits // acceleration in m/s2 * 1000 to avoid floating point math const LongitudinalLimits VOLKSWAGEN_MEB_LONG_LIMITS = { From 9f22e5efd86fa945d1d866933fe29804a9fcb4ca Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:09:24 -0500 Subject: [PATCH 547/653] comment tweaks --- opendbc/safety/safety/safety_volkswagen_meb.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d813be68720..d107f955840 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -250,7 +250,9 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { + // !!!!! // FIXME: needs curvature-based lateral limits, with power backoff from driver input torque + // !!!!! // longitudinal limits // acceleration in m/s2 * 1000 to avoid floating point math @@ -265,6 +267,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { int addr = GET_ADDR(to_send); bool tx = true; + // TODO: review and implement power backoff on driver input torque // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { int desired_curvature_raw = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); From 469f974aa94367e3262af10ae21b56592ff3297c Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:25:34 -0500 Subject: [PATCH 548/653] start with ID.4 only --- opendbc/car/volkswagen/fingerprints.py | 10 ++----- opendbc/car/volkswagen/values.py | 38 ++++---------------------- 2 files changed, 8 insertions(+), 40 deletions(-) diff --git a/opendbc/car/volkswagen/fingerprints.py b/opendbc/car/volkswagen/fingerprints.py index 86d2fdb566b..ebc52273c04 100644 --- a/opendbc/car/volkswagen/fingerprints.py +++ b/opendbc/car/volkswagen/fingerprints.py @@ -990,15 +990,9 @@ b'\xf1\x875Q0907572R \xf1\x890771', ], }, - CAR.CUPRA_BORN_MK1: { - (Ecu.engine, 0x7e0, None): [ - b'\xf1\x870EA906012EC\xf1\x892855', - ], + CAR.VOLKSWAGEN_ID4_MK1: { (Ecu.srs, 0x715, None): [ - b'\xf1\x871EA959655EH\xf1\x890381', - ], - (Ecu.eps, 0x712, None): [ - b'\xf1\x871EA907144AQ\xf1\x895033', + b'\xf1\x875WA959655R \xf1\x890717', ], (Ecu.fwdRadar, 0x757, None): [ b'\xf1\x871EA907572H \xf1\x890234', diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index e095f615dc3..a37f88673be 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -327,31 +327,12 @@ class CAR(Platforms): chassis_codes={"5G", "AU", "BA", "BE"}, wmis={WMI.VOLKSWAGEN_MEXICO_CAR, WMI.VOLKSWAGEN_EUROPE_CAR}, ) - #VOLKSWAGEN_ID3_MK1 = VolkswagenMEBPlatformConfig( - # [VWCarDocs("Volkswagen ID.3 2020-2023", footnotes=[Footnote.VW_MEB])], - # # Für den ID.3 Pro S mit 77 kWh Batterie: ca. 1.935 kg - # # 45 kWh: ca. 1.772 kg - # # 58 kWh: ca. 1.812 kg - # VolkswagenCarSpecs(mass=1935, wheelbase=2.770), - # chassis_codes={"E1"}, - # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, - #) - #VOLKSWAGEN_ID4_MK1 = VolkswagenMEBPlatformConfig( - # [VWCarDocs("Volkswagen ID.4 2020-2023", footnotes=[Footnote.VW_MEB])], - # # Für den ID.4 Pro Performance mit 77 kWh Batterie: ca. 2.099 kg - # # 52 kWh: ca. 1.966 kg - # VolkswagenCarSpecs(mass=2099, wheelbase=2.771), - # chassis_codes={"E2"}, - # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, - #) - #VOLKSWAGEN_ID5_MK1 = VolkswagenMEBPlatformConfig( - # [VWCarDocs("Volkswagen ID.5 2022-", footnotes=[Footnote.VW_MEB])], - # # Für den ID.5 Pro 77 kWh: ca. 2.143 kg - # # 55 kWh: ca. 2.092 kg - # VolkswagenCarSpecs(mass=2143, wheelbase=2.770), - # chassis_codes={"E2"}, # yes... ID.5 and ID.4 share the same chassis code - # wmis={WMI.VOLKSWAGEN_EUROPE_CAR}, - #) + VOLKSWAGEN_ID4_MK1 = VolkswagenMEBPlatformConfig( + [VWCarDocs("Volkswagen ID.4 2021-25", footnotes=[Footnote.VW_MEB])], + VolkswagenCarSpecs(mass=2099, wheelbase=2.77), + chassis_codes={"E2", "E8"}, + wmis={WMI.VOLKSWAGEN_EUROPE_CAR, WMI.VOLKSWAGEN_USA_SUV}, + ) VOLKSWAGEN_JETTA_MK6 = VolkswagenPQPlatformConfig( [VWCarDocs("Volkswagen Jetta 2015-18")], VolkswagenCarSpecs(mass=1518, wheelbase=2.65, minSteerSpeed=50 * CV.KPH_TO_MS, minEnableSpeed=20 * CV.KPH_TO_MS), @@ -476,13 +457,6 @@ class CAR(Platforms): chassis_codes={"5F"}, wmis={WMI.SEAT}, ) - CUPRA_BORN_MK1 = VolkswagenMEBPlatformConfig( - [VWCarDocs("CUPRA Born 2021-", footnotes=[Footnote.VW_MEB])], - # for CUPRA BORN 77kWh 170 kW, tireStiffnessFactor and centerToFrontRatio are approximations - VolkswagenCarSpecs(mass=1950, wheelbase=2.766, steerRatio=15.9, centerToFrontRatio=0.55, tireStiffnessFactor=1.1), - chassis_codes={"K1"}, - wmis={WMI.SEAT}, - ) SKODA_FABIA_MK4 = VolkswagenMQBPlatformConfig( [VWCarDocs("Å koda Fabia 2022-23", footnotes=[Footnote.VW_MQB_A0])], VolkswagenCarSpecs(mass=1266, wheelbase=2.56), From a26778287809a5e4e6bfc4292d201ec7bd303df0 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:27:15 -0500 Subject: [PATCH 549/653] move MEB safety under DEBUG for now --- opendbc/safety/safety.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/safety.h b/opendbc/safety/safety.h index 2832b3beaf8..1cfea25b5a1 100644 --- a/opendbc/safety/safety.h +++ b/opendbc/safety/safety.h @@ -380,11 +380,11 @@ int set_safety_hooks(uint16_t mode, uint16_t param) { {SAFETY_FORD, &ford_hooks}, #ifdef CANFD {SAFETY_HYUNDAI_CANFD, &hyundai_canfd_hooks}, - {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, #endif #ifdef ALLOW_DEBUG {SAFETY_TESLA, &tesla_hooks}, {SAFETY_SUBARU_PREGLOBAL, &subaru_preglobal_hooks}, + {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, {SAFETY_VOLKSWAGEN_PQ, &volkswagen_pq_hooks}, {SAFETY_ALLOUTPUT, &alloutput_hooks}, #endif From a3ccba4a9db1365162a37eef2f458da8173bdc50 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:45:45 -0500 Subject: [PATCH 550/653] more ID.4 only to start --- opendbc/car/torque_data/override.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/torque_data/override.toml b/opendbc/car/torque_data/override.toml index 4eb0557a0ca..5ffe2ef04b6 100644 --- a/opendbc/car/torque_data/override.toml +++ b/opendbc/car/torque_data/override.toml @@ -47,8 +47,8 @@ legend = ["LAT_ACCEL_FACTOR", "MAX_LAT_ACCEL_MEASURED", "FRICTION"] "CHEVROLET_TRAVERSE" = [1.33, 1.33, 0.18] "CHEVROLET_EQUINOX" = [2.5, 2.5, 0.05] "CHEVROLET_VOLT_2019" = [1.4, 1.4, 0.16] -"CUPRA_BORN_MK1" = [nan, 2.5, nan] "VOLKSWAGEN_CADDY_MK3" = [1.2, 1.2, 0.1] +"VOLKSWAGEN_ID4_MK1" = [nan, 2.5, nan] "VOLKSWAGEN_PASSAT_NMS" = [2.5, 2.5, 0.1] "VOLKSWAGEN_SHARAN_MK2" = [2.5, 2.5, 0.1] "HYUNDAI_SANTA_CRUZ_1ST_GEN" = [2.7, 2.7, 0.1] From 4035e70705eb0c3d020a4d749b59472bbbcb57f1 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:45:57 -0500 Subject: [PATCH 551/653] harness parts, regen docs --- docs/CARS.md | 3 ++- opendbc/car/docs_definitions.py | 1 + opendbc/car/volkswagen/values.py | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/CARS.md b/docs/CARS.md index 747f70419c5..f4e1526ef5d 100644 --- a/docs/CARS.md +++ b/docs/CARS.md @@ -1,6 +1,6 @@ -# Support Information for 347 Known Cars +# Support Information for 348 Known Cars |Make|Model|Package|Support Level| |---|---|---|:---:| @@ -332,6 +332,7 @@ |Volkswagen|Golf R 2015-19|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| |Volkswagen|Golf SportsVan 2015-20|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| |Volkswagen|Grand California 2019-24|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| +|Volkswagen|ID.4 2021-25|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| |Volkswagen|Jetta 2015-18|Adaptive Cruise Control (ACC) & Lane Assist|[Dashcam mode](#dashcam)| |Volkswagen|Jetta 2018-23|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| |Volkswagen|Jetta GLI 2021-23|Adaptive Cruise Control (ACC) & Lane Assist|[Upstream](#upstream)| diff --git a/opendbc/car/docs_definitions.py b/opendbc/car/docs_definitions.py index d51ea1887c9..60bce204092 100644 --- a/opendbc/car/docs_definitions.py +++ b/opendbc/car/docs_definitions.py @@ -107,6 +107,7 @@ class CarHarness(EnumBase): fca = BaseCarHarness("FCA connector") ram = BaseCarHarness("Ram connector") vw_a = BaseCarHarness("VW A connector") + vw_c = BaseCarHarness("VW C connector") vw_j533 = BaseCarHarness("VW J533 connector", parts=[Accessory.harness_box, Cable.long_obdc_cable, Cable.usbc_coupler, Accessory.comma_power_v2]) hyundai_a = BaseCarHarness("Hyundai A connector") hyundai_b = BaseCarHarness("Hyundai B connector") diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index a37f88673be..54987c85b01 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -253,7 +253,9 @@ def init_make(self, CP: structs.CarParams): if "SKODA" in CP.carFingerprint: self.footnotes.append(Footnote.SKODA_HEATED_WINDSHIELD) - if CP.carFingerprint in (CAR.VOLKSWAGEN_CRAFTER_MK2, CAR.VOLKSWAGEN_TRANSPORTER_T61): + if CP.flags & VolkswagenFlags.MEB: + self.car_parts = CarParts.common([CarHarness.vw_c]) + elif CP.carFingerprint in (CAR.VOLKSWAGEN_CRAFTER_MK2, CAR.VOLKSWAGEN_TRANSPORTER_T61): self.car_parts = CarParts([Device.threex_angled_mount, CarHarness.vw_j533]) if abs(CP.minSteerSpeed - CarControllerParams.DEFAULT_MIN_STEER_SPEED) < 1e-3: From 551474262ab6f0ef53dc4ad1cb3b9e3bff1087f6 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:48:12 -0500 Subject: [PATCH 552/653] elide superfluous import --- opendbc/safety/tests/test_volkswagen_meb.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 9f79ea2f246..81dee7ef867 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -1,6 +1,5 @@ #!/usr/bin/env python3 import unittest -import numpy as np from opendbc.car.structs import CarParams from opendbc.safety.tests.libsafety import libsafety_py import opendbc.safety.tests.common as common From 5b93224624e97c0b3827edf3d67368176b6b732b Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 19:50:40 -0500 Subject: [PATCH 553/653] fix test route reference --- opendbc/car/tests/routes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/tests/routes.py b/opendbc/car/tests/routes.py index 3cbf62e3772..0ed7fa13e5d 100644 --- a/opendbc/car/tests/routes.py +++ b/opendbc/car/tests/routes.py @@ -248,6 +248,7 @@ class CarTestRoute(NamedTuple): CarTestRoute("ffcd23abbbd02219|2024-02-28--14-59-38", VOLKSWAGEN.VOLKSWAGEN_CADDY_MK3), CarTestRoute("cae14e88932eb364|2021-03-26--14-43-28", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # Stock ACC CarTestRoute("3cfdec54aa035f3f|2022-10-13--14-58-58", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # openpilot longitudinal + CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.VOLKSWAGEN_ID4_MK1), # FIXME: temporary, replace later CarTestRoute("578742b26807f756|00000010--41ee3e5bec", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK6), CarTestRoute("58a7d3b707987d65|2021-03-25--17-26-37", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK7), CarTestRoute("4d134e099430fba2|2021-03-26--00-26-06", VOLKSWAGEN.VOLKSWAGEN_PASSAT_MK8), @@ -263,7 +264,6 @@ class CarTestRoute(NamedTuple): CarTestRoute("07667b885add75fd|2021-01-23--19-48-42", VOLKSWAGEN.AUDI_A3_MK3), CarTestRoute("6c6b466346192818|2021-06-06--14-17-47", VOLKSWAGEN.AUDI_Q2_MK1), CarTestRoute("0cd0b7f7e31a3853|2021-12-03--03-12-05", VOLKSWAGEN.AUDI_Q3_MK2), - CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.CUPRA_BORN_MK1), # FIXME: temporary, replace later CarTestRoute("8f205bdd11bcbb65|2021-03-26--01-00-17", VOLKSWAGEN.SEAT_ATECA_MK1), CarTestRoute("fc6b6c9a3471c846|2021-05-27--13-39-56", VOLKSWAGEN.SEAT_ATECA_MK1), # Leon CarTestRoute("0bbe367c98fa1538|2023-03-04--17-46-11", VOLKSWAGEN.SKODA_FABIA_MK4), From 08d05e9ce8e3685f8cd28a89cbb4e34c77e1bbdc Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 20:22:38 -0500 Subject: [PATCH 554/653] MEB safety is both CANFD and DEBUG --- opendbc/safety/safety.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/safety/safety.h b/opendbc/safety/safety.h index 1cfea25b5a1..f2b9abe01be 100644 --- a/opendbc/safety/safety.h +++ b/opendbc/safety/safety.h @@ -380,11 +380,13 @@ int set_safety_hooks(uint16_t mode, uint16_t param) { {SAFETY_FORD, &ford_hooks}, #ifdef CANFD {SAFETY_HYUNDAI_CANFD, &hyundai_canfd_hooks}, +#ifdef ALLOW_DEBUG + {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, +#endif #endif #ifdef ALLOW_DEBUG {SAFETY_TESLA, &tesla_hooks}, {SAFETY_SUBARU_PREGLOBAL, &subaru_preglobal_hooks}, - {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, {SAFETY_VOLKSWAGEN_PQ, &volkswagen_pq_hooks}, {SAFETY_ALLOUTPUT, &alloutput_hooks}, #endif From 42b708bbceb3facd129fd56ed02b31ae51849ddd Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 20:46:39 -0500 Subject: [PATCH 555/653] set aside Travel Assist HUD logic for now --- opendbc/car/volkswagen/carcontroller.py | 8 +------- opendbc/car/volkswagen/mebcan.py | 9 +++------ 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 715d3bdcd79..8ec7b6cd6dd 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -179,15 +179,9 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.LDW_STEP == 0: hud_alert = 0 - sound_alert = 0 if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): - hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] - if self.CP.flags & VolkswagenFlags.MEB: - sound_alert = self.CCP.LDW_SOUNDS["Chime"] if hud_alert == self.CCP.LDW_MESSAGES["laneAssistTakeOverUrgent"] else self.CCP.LDW_SOUNDS["None"] - can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control, sound_alert)) - else: + hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, CS.out.steeringPressed, hud_alert, hud_control)) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 5b4c519cd99..e9d9705a4fb 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -48,9 +48,7 @@ def create_eps_update(packer, bus, eps_stock_values, ea_simulated_torque): return packer.make_can_msg("LH_EPS_03", bus, values) -def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control, sound_alert): - display_mode = 1 if lat_active else 0 # travel assist style showing yellow lanes when op is active - +def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control): values = {} if len(ldw_stock_values): values = {s: ldw_stock_values[s] for s in [ @@ -62,11 +60,10 @@ def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_p ]} values.update({ - "LDW_Gong": sound_alert, "LDW_Status_LED_gelb": 1 if lat_active and steering_pressed else 0, "LDW_Status_LED_gruen": 1 if lat_active and not steering_pressed else 0, - "LDW_Lernmodus_links": 3 + display_mode if hud_control.leftLaneDepart else 1 + hud_control.leftLaneVisible + display_mode, - "LDW_Lernmodus_rechts": 3 + display_mode if hud_control.rightLaneDepart else 1 + hud_control.rightLaneVisible + display_mode, + "LDW_Lernmodus_links": 3 if hud_control.leftLaneDepart else 1 + hud_control.leftLaneVisible, + "LDW_Lernmodus_rechts": 3 if hud_control.rightLaneDepart else 1 + hud_control.rightLaneVisible, "LDW_Texte": hud_alert, }) return packer.make_can_msg("LDW_02", bus, values) From 342db1abce17d1aad2d188854aedda63c338d114 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 22:19:40 -0500 Subject: [PATCH 556/653] cleanup --- opendbc/safety/safety/safety_volkswagen_meb.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d107f955840..c80a96568a3 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -109,15 +109,12 @@ static safety_config volkswagen_meb_init(uint16_t param) { {.msg = {{MSG_EML_06, 0, 64, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, }; - UNUSED(param); - volkswagen_set_button_prev = false; volkswagen_resume_button_prev = false; volkswagen_steer_power_prev = 0; -#ifdef ALLOW_DEBUG volkswagen_longitudinal = GET_FLAG(param, FLAG_VOLKSWAGEN_LONG_CONTROL); -#endif + gen_crc_lookup_table_8(0x2F, volkswagen_crc8_lut_8h2f); return volkswagen_longitudinal ? BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_LONG_TX_MSGS) : \ BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); From 8956b1da5122b9c4e899f7fc0667b8ac2c1b9bca Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 22:19:45 -0500 Subject: [PATCH 557/653] cleanup --- opendbc/car/volkswagen/interface.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 5fbe3707ab6..1d3da20d7ba 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -41,12 +41,10 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, QFK_01 ret.networkLocation = NetworkLocation.gateway + ret.radarUnavailable = False else: ret.networkLocation = NetworkLocation.fwdCamera - if ret.networkLocation == NetworkLocation.gateway: - ret.radarUnavailable = False - # TODO for anti EA intervention: I do not have the native Emegrency Assist and can not test # also we do not get steering torque from OP for MEB #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value # for MEB HCA_03 should be always present From afbc89faa1f275f4c57d21ebc1ad0480be404c95 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 22:22:59 -0500 Subject: [PATCH 558/653] HCA appears to be standard on MEB --- opendbc/car/volkswagen/interface.py | 4 ---- opendbc/car/volkswagen/values.py | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 1d3da20d7ba..c376a56ac43 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -45,10 +45,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp else: ret.networkLocation = NetworkLocation.fwdCamera - # TODO for anti EA intervention: I do not have the native Emegrency Assist and can not test - # also we do not get steering torque from OP for MEB - #ret.flags |= VolkswagenFlags.STOCK_HCA_PRESENT.value # for MEB HCA_03 should be always present - else: # Set global MQB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 54987c85b01..0f4da57334e 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -201,7 +201,7 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): wmis: set[WMI] = field(default_factory=set) def init(self): - self.flags |= VolkswagenFlags.MEB + self.flags |= VolkswagenFlags.MEB | VolkswagenFlags.STOCK_HCA_PRESENT @dataclass From 8c727dc3fa3672a9a3aadd5547e7aa459673eb5a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 22:25:57 -0500 Subject: [PATCH 559/653] doesn't actually work yet --- opendbc/car/volkswagen/values.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 0f4da57334e..15c0359939b 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -201,7 +201,8 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): wmis: set[WMI] = field(default_factory=set) def init(self): - self.flags |= VolkswagenFlags.MEB | VolkswagenFlags.STOCK_HCA_PRESENT + # TODO: add VolkswagenFlags.STOCK_HCA_PRESENT for EA mitigation once we have a torque substitute to send + self.flags |= VolkswagenFlags.MEB @dataclass From 6c38a9115abab8ee9dbcb758744cd6ee01958657 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:08:05 -0500 Subject: [PATCH 560/653] add longitudinal acceleration test --- opendbc/safety/tests/test_volkswagen_meb.py | 30 +++++++++------------ 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 81dee7ef867..1eeb71a8cbd 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 import unittest +import numpy as np from opendbc.car.structs import CarParams from opendbc.safety.tests.libsafety import libsafety_py import opendbc.safety.tests.common as common @@ -25,16 +26,11 @@ MSG_Motor_51 = 0x10B # RX for TSK state MSG_TA_01 = 0x26B # TX for Travel Assist status + class TestVolkswagenMebSafety(common.PandaCarSafetyTest): STANDSTILL_THRESHOLD = 0 RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_03,)} - MAX_RATE_UP = 4 - MAX_RATE_DOWN = 10 - MAX_TORQUE = 300 - MAX_RT_DELTA = 75 - RT_INTERVAL = 250000 - DRIVER_TORQUE_ALLOWANCE = 80 DRIVER_TORQUE_FACTOR = 3 @@ -99,16 +95,10 @@ def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=2): values = {"GRA_Abbrechen": cancel, "GRA_Tip_Setzen": _set, "GRA_Tip_Wiederaufnahme": resume} return self.packer.make_can_msg_panda("GRA_ACC_01", bus, values) - # TODO: add MEB ACC messages # Acceleration request to drivetrain coordinator - # def _acc_06_msg(self, accel): - # values = {"ACC_Sollbeschleunigung_02": accel} - # return self.packer.make_can_msg_panda("ACC_06", 0, values) - - # Acceleration request to drivetrain coordinator - # def _acc_07_msg(self, accel, secondary_accel=3.02): - # values = {"ACC_Sollbeschleunigung_02": accel, "ACC_Folgebeschl": secondary_accel} - # return self.packer.make_can_msg_panda("ACC_07", 0, values) + def _acc_18_msg(self, accel): + values = {"ACC_Sollbeschleunigung_02": accel} + return self.packer.make_can_msg_panda("ACC_18", 0, values) # TODO: re-enable if a usable redundant brake signal is found # Verify brake_pressed is true if either the switch or pressure threshold signals are true @@ -215,9 +205,15 @@ def test_main_switch(self): self._rx(self._tsk_status_msg(False, main_switch=False)) self.assertFalse(self.safety.get_controls_allowed(), "controls allowed after ACC main switch off") - # TODO: implement this for MEB def test_accel_safety_check(self): - pass + for controls_allowed in [True, False]: + # enforce we don't skip over 0 or inactive accel + for accel in np.concatenate((np.arange(MIN_ACCEL - 2, MAX_ACCEL + 2, 0.03), [0, self.INACTIVE_ACCEL])): + accel = round(accel, 2) # floats might not hit exact boundary conditions without rounding + is_inactive_accel = accel == self.INACTIVE_ACCEL + send = (controls_allowed and MIN_ACCEL <= accel <= MAX_ACCEL) or is_inactive_accel + self.safety.set_controls_allowed(controls_allowed) + self.assertEqual(send, self._tx(self._acc_18_msg(accel)), (controls_allowed, accel)) if __name__ == "__main__": From 12d07ddf924a89f2c5af6797b8e95c59f52cbae4 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:08:29 -0500 Subject: [PATCH 561/653] relocate angle steer limit controls --- opendbc/safety/safety/safety_volkswagen_meb.h | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index c80a96568a3..1ed97eb5286 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -120,25 +120,6 @@ static safety_config volkswagen_meb_init(uint16_t param) { BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); } -// lateral limits for curvature -static const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { - // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 - // for FORD enforce_angle_error is active with margin of 0.002 which could solve the issue, we have here - .max_steer = 29105, // 0.195 rad/m - .angle_deg_to_can = 149253.7313, // 1 / 6.7e-6 rad/m to can - .angle_rate_up_lookup = { - {5., 25., 25.}, - {0.0017, 0.00035, 0.00035} // in rad/m - }, - .angle_rate_down_lookup = { - {5., 25., 25.}, - {0.0022, 0.00055, 0.00055} - }, - //.max_angle_error = , // THIS WOULD ALLOW MORE ROOM FOR OUR RATE LIMITS see comment above, but we want correct safety limit checks? and - //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time - .inactive_angle_is_zero = true, -}; - static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { if (GET_BUS(to_push) == 0U) { int addr = GET_ADDR(to_push); @@ -247,10 +228,25 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { - // !!!!! - // FIXME: needs curvature-based lateral limits, with power backoff from driver input torque - // !!!!! - + // TODO: Validate + // lateral limits for curvature + const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { + // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 + // for FORD enforce_angle_error is active with margin of 0.002 which could solve the issue, we have here + .max_steer = 29105, // 0.195 rad/m + .angle_deg_to_can = 149253.7313, // 1 / 6.7e-6 rad/m to can + .angle_rate_up_lookup = { + {5., 25., 25.}, + {0.0017, 0.00035, 0.00035} // in rad/m + }, + .angle_rate_down_lookup = { + {5., 25., 25.}, + {0.0022, 0.00055, 0.00055} + }, + //.max_angle_error = , // THIS WOULD ALLOW MORE ROOM FOR OUR RATE LIMITS see comment above, but we want correct safety limit checks? and + //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time + .inactive_angle_is_zero = true, + }; // longitudinal limits // acceleration in m/s2 * 1000 to avoid floating point math const LongitudinalLimits VOLKSWAGEN_MEB_LONG_LIMITS = { From f3d28bd20d96eb542a518d0edf6b87b5d8d96e6e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:09:33 -0500 Subject: [PATCH 562/653] another TODO --- opendbc/safety/safety/safety_volkswagen_meb.h | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 1ed97eb5286..d59307f6ebb 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -276,6 +276,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { if (steer_angle_cmd_checks(desired_curvature_raw, steer_req, VOLKSWAGEN_MEB_STEERING_LIMITS)) { tx = false; + // TODO: verify this is actually necessary, this wasn't a problem on MQBevo // steer power is still allowed to decrease to zero monotonously // while controls are not allowed anymore if (steer_req && steer_power != 0) { From c9e810466f20d80b6e7ff09810565d944544d777 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:12:22 -0500 Subject: [PATCH 563/653] partial dead code cleanup --- opendbc/safety/safety/safety_volkswagen_meb.h | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d59307f6ebb..6ffbbb3b34e 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -255,8 +255,6 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { .inactive_accel = 3010, // VW sends one increment above the max range when inactive }; - const int volkswagen_accel_override = 0; - int addr = GET_ADDR(to_send); bool tx = true; @@ -299,7 +297,8 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // WARNING: IF WE TAKE THE SIGNAL FROM THE CAR WHILE ACC ACTIVE AND BELOW ABOUT 3km/h, THE CAR ERRORS AND PUTS ITSELF IN PARKING MODE WITH EPB! int desired_accel = ((((GET_BYTE(to_send, 4) & 0x7U) << 8) | GET_BYTE(to_send, 3)) * 5U) - 7220U; - if (vw_meb_longitudinal_accel_checks(desired_accel, VOLKSWAGEN_MEB_LONG_LIMITS, volkswagen_accel_override)) { + // TODO: very unclear what this is doing, may not be necessary, try removing + if (vw_meb_longitudinal_accel_checks(desired_accel, VOLKSWAGEN_MEB_LONG_LIMITS, 0)) { tx = false; } } From 7da323dde77da8340278cde20ee64aaa45143006 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:13:34 -0500 Subject: [PATCH 564/653] more comments --- opendbc/safety/safety/safety_volkswagen_meb.h | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 6ffbbb3b34e..b946f3aa1b6 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -295,6 +295,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // To avoid floating point math, scale upward and compare to pre-scaled safety m/s2 boundaries if (addr == MSG_ACC_18) { // WARNING: IF WE TAKE THE SIGNAL FROM THE CAR WHILE ACC ACTIVE AND BELOW ABOUT 3km/h, THE CAR ERRORS AND PUTS ITSELF IN PARKING MODE WITH EPB! + // TODO: JY note, this is probably just drivetrain coordinator starting/stopping logic int desired_accel = ((((GET_BYTE(to_send, 4) & 0x7U) << 8) | GET_BYTE(to_send, 3)) * 5U) - 7220U; // TODO: very unclear what this is doing, may not be necessary, try removing From c95e8b6e88712ebde54de1fc651643aeb851b54f Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 21 Feb 2025 23:36:28 -0500 Subject: [PATCH 565/653] more review notes for test driving tomorrow --- opendbc/car/volkswagen/carcontroller.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 8ec7b6cd6dd..27b7ed817ed 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -53,10 +53,13 @@ def update(self, CC, CS, now_nanos): hca_enabled = True current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) - if CS.out.steeringPressed: # roughly sync with user input - apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) + # TODO: verify, this shouldn't be necessary and appears to be hurting us in some cases + #if CS.out.steeringPressed: # roughly sync with user input + # apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) + # FIXME: this power control is very complex and is interacting badly with the wheel touch threshold + # it should ideally just use the max unless the driver is overriding, then simple smooth ramp up/down steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) steering_curvature_diff = abs(apply_curvature - current_curvature) @@ -78,9 +81,11 @@ def update(self, CC, CS, now_nanos): else: steering_power = self.steering_power_last + # TODO: investigate this "power boost", validity and utility are unclear steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False else: + # TODO: see if we can do without this extra ramp-down-on-disengage logic, it makes safety more complex and MQBevo didn't need it steering_power_boost = False if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True From 16a2e058a2c1e237c9eb33662cad7bf8d210b765 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 14:57:21 -0500 Subject: [PATCH 566/653] Revert "safety: pull out cam -> pt fwd blocking (#1785)" This reverts commit af1e63f7e17197fe4c264bccf6c028d5171ace07. --- opendbc/safety/safety.h | 11 +---------- opendbc/safety/safety/safety_mazda.h | 9 +++++---- opendbc/safety/safety/safety_tesla.h | 8 ++++++-- opendbc/safety/safety/safety_toyota.h | 14 ++++++++++---- opendbc/safety/safety_declarations.h | 1 - opendbc/safety/tests/misra/test_mutation.py | 2 +- 6 files changed, 23 insertions(+), 22 deletions(-) diff --git a/opendbc/safety/safety.h b/opendbc/safety/safety.h index c85b36a2f26..f2b9abe01be 100644 --- a/opendbc/safety/safety.h +++ b/opendbc/safety/safety.h @@ -248,16 +248,7 @@ bool safety_tx_hook(CANPacket_t *to_send) { } int safety_fwd_hook(int bus_num, int addr) { - bool blocked = false; - for (int i = 0; i < current_safety_config.tx_msgs_len; i++) { - const CanMsg *m = ¤t_safety_config.tx_msgs[i]; - if ((bus_num == 2) && (m->addr == addr) && m->block_from_cam) { - blocked = true; - break; - } - } - - return ((relay_malfunction || blocked) ? -1 : current_hooks->fwd(bus_num, addr)); + return (relay_malfunction ? -1 : current_hooks->fwd(bus_num, addr)); } bool get_longitudinal_allowed(void) { diff --git a/opendbc/safety/safety/safety_mazda.h b/opendbc/safety/safety/safety_mazda.h index 1f0acec3119..ed87451f771 100644 --- a/opendbc/safety/safety/safety_mazda.h +++ b/opendbc/safety/safety/safety_mazda.h @@ -92,14 +92,15 @@ static bool mazda_tx_hook(const CANPacket_t *to_send) { } static int mazda_fwd_hook(int bus, int addr) { - UNUSED(addr); - int bus_fwd = -1; if (bus == MAZDA_MAIN) { bus_fwd = MAZDA_CAM; } else if (bus == MAZDA_CAM) { - bus_fwd = MAZDA_MAIN; + bool block = (addr == MAZDA_LKAS) || (addr == MAZDA_LKAS_HUD); + if (!block) { + bus_fwd = MAZDA_MAIN; + } } else { // don't fwd } @@ -108,7 +109,7 @@ static int mazda_fwd_hook(int bus, int addr) { } static safety_config mazda_init(uint16_t param) { - static const CanMsg MAZDA_TX_MSGS[] = {{MAZDA_LKAS, 0, 8, true}, {MAZDA_CRZ_BTNS, 0, 8}, {MAZDA_LKAS_HUD, 0, 8, true}}; + static const CanMsg MAZDA_TX_MSGS[] = {{MAZDA_LKAS, 0, 8}, {MAZDA_CRZ_BTNS, 0, 8}, {MAZDA_LKAS_HUD, 0, 8}}; static RxCheck mazda_rx_checks[] = { {.msg = {{MAZDA_CRZ_CTRL, 0, 8, .frequency = 50U}, { 0 }, { 0 }}}, diff --git a/opendbc/safety/safety/safety_tesla.h b/opendbc/safety/safety/safety_tesla.h index b676453c6bc..cc78265646d 100644 --- a/opendbc/safety/safety/safety_tesla.h +++ b/opendbc/safety/safety/safety_tesla.h @@ -158,6 +158,10 @@ static int tesla_fwd_hook(int bus_num, int addr) { if (bus_num == 2) { bool block_msg = false; + // DAS_steeringControl, APS_eacMonitor + if ((addr == 0x488) || (addr == 0x27d)) { + block_msg = true; + } // DAS_control if (tesla_longitudinal && (addr == 0x2b9) && !tesla_stock_aeb) { @@ -175,9 +179,9 @@ static int tesla_fwd_hook(int bus_num, int addr) { static safety_config tesla_init(uint16_t param) { static const CanMsg TESLA_M3_Y_TX_MSGS[] = { + {0x488, 0, 4}, // DAS_steeringControl {0x2b9, 0, 8}, // DAS_control - {0x27D, 0, 3, true}, // APS_eacMonitor - {0x488, 0, 4, true}, // DAS_steeringControl + {0x27D, 0, 3}, // APS_eacMonitor }; UNUSED(param); diff --git a/opendbc/safety/safety/safety_toyota.h b/opendbc/safety/safety/safety_toyota.h index 1cd989ab4e7..7008bf8419e 100644 --- a/opendbc/safety/safety/safety_toyota.h +++ b/opendbc/safety/safety/safety_toyota.h @@ -4,15 +4,15 @@ // Stock longitudinal #define TOYOTA_BASE_TX_MSGS \ - {0x191, 0, 8, true}, {0x412, 0, 8, true}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \ + {0x191, 0, 8}, {0x412, 0, 8}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \ #define TOYOTA_COMMON_TX_MSGS \ TOYOTA_BASE_TX_MSGS \ - {0x2E4, 0, 5, true}, \ + {0x2E4, 0, 5}, \ #define TOYOTA_COMMON_SECOC_TX_MSGS \ TOYOTA_BASE_TX_MSGS \ - {0x2E4, 0, 8, true}, {0x131, 0, 8, true}, \ + {0x2E4, 0, 8}, {0x131, 0, 8}, \ #define TOYOTA_COMMON_LONG_TX_MSGS \ TOYOTA_COMMON_TX_MSGS \ @@ -386,8 +386,14 @@ static int toyota_fwd_hook(int bus_num, int addr) { } if (bus_num == 2) { + // block stock lkas messages and stock acc messages (if OP is doing ACC) + // in TSS2, 0x191 is LTA which we need to block to avoid controls collision + bool is_lkas_msg = ((addr == 0x2E4) || (addr == 0x412) || (addr == 0x191)); + // on SecOC cars 0x131 is also LTA + is_lkas_msg |= toyota_secoc && (addr == 0x131); // in TSS2 the camera does ACC as well, so filter 0x343 - bool block_msg = ((addr == 0x343) && !toyota_stock_longitudinal); + bool is_acc_msg = (addr == 0x343); + bool block_msg = is_lkas_msg || (is_acc_msg && !toyota_stock_longitudinal); if (!block_msg) { bus_fwd = 0; } diff --git a/opendbc/safety/safety_declarations.h b/opendbc/safety/safety_declarations.h index 09af9862daf..e55ad4273f2 100644 --- a/opendbc/safety/safety_declarations.h +++ b/opendbc/safety/safety_declarations.h @@ -49,7 +49,6 @@ typedef struct { int addr; int bus; int len; - bool block_from_cam; } CanMsg; typedef enum { diff --git a/opendbc/safety/tests/misra/test_mutation.py b/opendbc/safety/tests/misra/test_mutation.py index efd11abd9f3..1caf51a8641 100755 --- a/opendbc/safety/tests/misra/test_mutation.py +++ b/opendbc/safety/tests/misra/test_mutation.py @@ -19,7 +19,7 @@ # default (None, None, False), # general safety - ("opendbc/safety/safety/safety_honda.h", "s/is_lkas_msg =.*;/is_lkas_msg = addr == 1 || addr == 2;/g", True), + ("opendbc/safety/safety/safety_toyota.h", "s/is_lkas_msg =.*;/is_lkas_msg = addr == 1 || addr == 2;/g", True), ] patterns = [ From ea1221758ddbddce6ef150b0026197e43ecfc79a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 16:03:31 -0500 Subject: [PATCH 567/653] temp disable EA mitigation --- opendbc/safety/safety/safety_volkswagen_meb.h | 12 +++--------- opendbc/safety/tests/test_volkswagen_meb.py | 8 ++++---- 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index b946f3aa1b6..d0b3616c932 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -91,10 +91,10 @@ static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_GRA_ACC_01, 0, 8}, - {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}}; + {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}}; static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, - {MSG_LDW_02, 0, 8}, {MSG_LH_EPS_03, 2, 8}, {MSG_TA_01, 0, 8}}; + {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; static RxCheck volkswagen_meb_rx_checks[] = { {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, @@ -321,13 +321,7 @@ static int volkswagen_meb_fwd_hook(int bus_num, int addr) { switch (bus_num) { case 0: - if (addr == MSG_LH_EPS_03) { - // openpilot needs to replace apparent driver steering input torque to pacify VW Emergency Assist - bus_fwd = -1; - } else { - // Forward all remaining traffic from Extended CAN onward - bus_fwd = 2; - } + bus_fwd = 2; break; case 2: if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02)) { diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 1eeb71a8cbd..438b017fb4b 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -136,8 +136,8 @@ def test_torque_measurements(self): class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_LH_EPS_03, 2], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2]] - FWD_BLACKLISTED_ADDRS = {0: [MSG_LH_EPS_03], 2: [MSG_HCA_03, MSG_LDW_02]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02]} FWD_BUS_LOOKUP = {0: 2, 2: 0} def setUp(self): @@ -157,8 +157,8 @@ def test_spam_cancel_safety_check(self): class TestVolkswagenMebLongSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_LH_EPS_03, 2], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] - FWD_BLACKLISTED_ADDRS = {0: [MSG_LH_EPS_03], 2: [MSG_HCA_03, MSG_LDW_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} FWD_BUS_LOOKUP = {0: 2, 2: 0} INACTIVE_ACCEL = 3.01 From cfe31b20f212bc8365d9f08b05488db17dd32293 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 16:13:41 -0500 Subject: [PATCH 568/653] to receive the message, you must send the message --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 9c7f7d030dd..c35c128cf35 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -195,8 +195,8 @@ def update(self, CC, CS, now_nanos): if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] - can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control)) + can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, + CS.out.steeringPressed, hud_alert, hud_control)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: From c20b62f491d934d8b10d45b1d4eb4ce26b8cc938 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 16:32:36 -0500 Subject: [PATCH 569/653] temp disable, constant false-firing, fix later --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index c376a56ac43..7a99fd8a70f 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -35,7 +35,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] - ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 + # ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle From ee3948f940736ad14b364646127fbf507a003d5a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 16:36:07 -0500 Subject: [PATCH 570/653] temp experiment with static power level --- opendbc/car/volkswagen/carcontroller.py | 32 ++++--------------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index c35c128cf35..2ff27efc6e4 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -52,42 +52,18 @@ def update(self, CC, CS, now_nanos): if CC.latActive: hca_enabled = True - current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) + #current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) # TODO: verify, this shouldn't be necessary and appears to be hurting us in some cases #if CS.out.steeringPressed: # roughly sync with user input # apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) - # FIXME: this power control is very complex and is interacting badly with the wheel touch threshold - # it should ideally just use the max unless the driver is overriding, then simple smooth ramp up/down - steering_power_min_by_speed = np.interp(CS.out.vEgoRaw, [0, self.CCP.STEERING_POWER_MAX_BY_SPEED], - [self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX]) - steering_curvature_diff = abs(apply_curvature - current_curvature) - steering_curvature_increase = max(0, abs(apply_curvature) - abs(current_curvature)) - steering_curvature_change = np.interp(CS.out.vEgoRaw, [0., 3.], [steering_curvature_diff, steering_curvature_increase]) - steering_power_target_curvature = steering_power_min_by_speed + self.CCP.CURVATURE_POWER_FACTOR * (steering_curvature_change + abs(apply_curvature)) - steering_power_target = np.clip(steering_power_target_curvature, self.CCP.STEERING_POWER_MIN, self.CCP.STEERING_POWER_MAX) - - if self.steering_power_last < self.CCP.STEERING_POWER_MIN: # OP lane assist just activated - steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, self.CCP.STEERING_POWER_MIN) - elif CS.out.steeringPressed: # user action results in decreasing the steering power - steering_power_user = max(steering_power_target / 100 * (100 - self.CCP.STEERING_POWER_USER_REDUCTION), self.CCP.STEERING_POWER_MIN) - steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, steering_power_user) - else: # following desired target - if self.steering_power_last < steering_power_target: - steering_power = min(self.steering_power_last + self.CCP.STEERING_POWER_STEPS, steering_power_target) - elif self.steering_power_last > steering_power_target: - steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, steering_power_target) - else: - steering_power = self.steering_power_last - - # TODO: investigate this "power boost", validity and utility are unclear - steering_power_boost = True if steering_power == self.CCP.STEERING_POWER_MAX else False + # FIXME: implement power control, backoff on driver input torque + steering_power = 125 else: # TODO: see if we can do without this extra ramp-down-on-disengage logic, it makes safety more complex and MQBevo didn't need it - steering_power_boost = False if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) @@ -98,7 +74,7 @@ def update(self, CC, CS, now_nanos): apply_curvature = 0. # inactive curvature steering_power = 0 - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, steering_power_boost)) + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, False)) self.apply_curvature_last = apply_curvature self.steering_power_last = steering_power From d488094a631724148021b32c1141b0db2343392f Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 16:54:23 -0500 Subject: [PATCH 571/653] try moar? --- opendbc/car/volkswagen/interface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 7a99fd8a70f..99fac527e82 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -35,6 +35,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] + ret.enableBsm = False # ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle From 6338da0e2f68d80c2625484fda9c78b61a37d178 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 18:25:08 -0500 Subject: [PATCH 572/653] hax --- opendbc/car/car.capnp | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/car.capnp b/opendbc/car/car.capnp index 8cd73616fc8..2e62b716662 100644 --- a/opendbc/car/car.capnp +++ b/opendbc/car/car.capnp @@ -338,6 +338,7 @@ struct CarControl { enabled @0 :Bool; latActive @11: Bool; longActive @12: Bool; + currentCurvature @17 :Float32; # From vehicle model # Final actuator commands actuators @6 :Actuators; From a35114926d9b0b022e4d568e65c91effd18b507d Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 18:29:22 -0500 Subject: [PATCH 573/653] well this oughta be different --- opendbc/car/volkswagen/carcontroller.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 2ff27efc6e4..43fe421f344 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -52,8 +52,9 @@ def update(self, CC, CS, now_nanos): if CC.latActive: hca_enabled = True - #current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - apply_curvature = apply_std_steer_angle_limits(actuators.curvature, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) + # Adjust our curvature command by the offset between openpilot's current curvature and the QFK's current curvature + actuator_curvature_with_offset = actuators.curvature + (CS.curvature - CC.currentCurvature) + apply_curvature = apply_std_steer_angle_limits(actuator_curvature_with_offset, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) # TODO: verify, this shouldn't be necessary and appears to be hurting us in some cases #if CS.out.steeringPressed: # roughly sync with user input # apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) From ec6d51fa191f3b7f5fe99f50c1094db58eac2a9f Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 19:11:38 -0500 Subject: [PATCH 574/653] a bit more actuator delay --- opendbc/car/volkswagen/interface.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 99fac527e82..8f8ee6b9839 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -73,7 +73,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.steerActuatorDelay = 0.2 CarInterfaceBase.configure_torque_tune(candidate, ret.lateralTuning) elif ret.flags & VolkswagenFlags.MEB: - ret.steerActuatorDelay = 0.15 + ret.steerActuatorDelay = 0.2 else: ret.steerActuatorDelay = 0.1 ret.lateralTuning.pid.kpBP = [0.] From 5a202d6002d6a426ec5814c24223346721e96256 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sat, 22 Feb 2025 21:43:43 -0500 Subject: [PATCH 575/653] gate ACC and LKA fault detection on drive mode --- opendbc/car/volkswagen/carstate.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index e2ef1f4c696..a32f20d4e3d 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -285,6 +285,10 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) ret.standstill = ret.vEgoRaw == 0 + # Update gear and/or clutch position data. + ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) + drive_mode = ret.gearShifter == GearShifter.drive # TODO: look for a cleaner bit, but this will do for now + # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. # LWI_01, MEP_EPS_01 steering angle differs from real steering angle (dynamic steering) ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] @@ -296,7 +300,7 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) - ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) + ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status, drive_mode) # VW Emergency Assist status tracking and mitigation self.eps_stock_values = pt_cp.vl["LH_EPS_03"] @@ -310,9 +314,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed # regen braking bool(pt_cp.vl["ESC_50"]['Regen_Braking']) TODO - # Update gear and/or clutch position data. - ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) - # Update door and trunk/hatch lid open status. ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], pt_cp.vl["ZV_02"]["ZV_BT_offen"], @@ -340,7 +341,8 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.travel_assist_available = bool(cam_cp.vl["TA_01"]["Travel_Assist_Available"]) ret.cruiseState.available = pt_cp.vl["Motor_51"]["TSK_Status"] in (2, 3, 4, 5) - ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) + ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) + ret.accFaulted = drive_mode and pt_cp.vl["Motor_51"]["TSK_Status"] in (6, 7) if self.CP.pcmCruise: # Cruise Control mode; check for distance UI setting from the radar. @@ -350,8 +352,6 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: # Speed limiter mode; ECM faults if we command ACC while not pcmCruise ret.cruiseState.nonAdaptive = bool(pt_cp.vl["Motor_51"]["TSK_Limiter_ausgewaehlt"]) - ret.accFaulted = pt_cp.vl["Motor_51"]["TSK_Status"] in (6, 7) - self.esp_hold_confirmation = bool(pt_cp.vl["VMM_02"]["ESP_Hold"]) ret.cruiseState.standstill = self.CP.pcmCruise and self.esp_hold_confirmation @@ -378,12 +378,12 @@ def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.frame += 1 return ret - def update_hca_state(self, hca_status): + def update_hca_state(self, hca_status, drive_mode=True): # Treat FAULT as temporary for worst likely EPS recovery time, for cars without factory Lane Assist # DISABLED means the EPS hasn't been configured to support Lane Assist self.eps_init_complete = self.eps_init_complete or (hca_status in ("DISABLED", "READY", "ACTIVE") or self.frame > 600) - perm_fault = hca_status == "DISABLED" or (self.eps_init_complete and hca_status == "FAULT") - temp_fault = hca_status in ("REJECTED", "PREEMPTED") or not self.eps_init_complete + perm_fault = drive_mode and hca_status == "DISABLED" or (self.eps_init_complete and hca_status == "FAULT") + temp_fault = drive_mode and hca_status in ("REJECTED", "PREEMPTED") or not self.eps_init_complete return temp_fault, perm_fault @staticmethod From ad451e5e9798da2ace397b578a64bafc01ed0e5e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 01:21:22 -0500 Subject: [PATCH 576/653] TIGHT TIGHT TIGHT --- opendbc/car/volkswagen/carstate.py | 320 ++++++++++------------------ opendbc/car/volkswagen/interface.py | 1 - 2 files changed, 118 insertions(+), 203 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index a32f20d4e3d..628e711fdb1 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -50,46 +50,9 @@ def update(self, can_parsers) -> structs.CarState: if self.CP.flags & VolkswagenFlags.PQ: return self.update_pq(pt_cp, cam_cp, ext_cp) - elif self.CP.flags & VolkswagenFlags.MEB: - return self.update_meb(pt_cp, cam_cp, ext_cp) ret = structs.CarState() - # Update vehicle speed and acceleration from ABS wheel speeds. - ret.wheelSpeeds = self.get_wheel_speeds( - pt_cp.vl["ESP_19"]["ESP_VL_Radgeschw_02"], - pt_cp.vl["ESP_19"]["ESP_VR_Radgeschw_02"], - pt_cp.vl["ESP_19"]["ESP_HL_Radgeschw_02"], - pt_cp.vl["ESP_19"]["ESP_HR_Radgeschw_02"], - ) - - ret.vEgoRaw = float(np.mean([ret.wheelSpeeds.fl, ret.wheelSpeeds.fr, ret.wheelSpeeds.rl, ret.wheelSpeeds.rr])) - ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) - ret.standstill = ret.vEgoRaw == 0 - - # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. - ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] - ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] - ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] - ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE - ret.yawRate = pt_cp.vl["ESP_02"]["ESP_Gierrate"] * (1, -1)[int(pt_cp.vl["ESP_02"]["ESP_VZ_Gierrate"])] * CV.DEG_TO_RAD - hca_status = self.CCP.hca_status_values.get(pt_cp.vl["LH_EPS_03"]["EPS_HCA_Status"]) - ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status) - - # VW Emergency Assist status tracking and mitigation - self.eps_stock_values = pt_cp.vl["LH_EPS_03"] - if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: - ret.carFaultedNonCritical = bool(cam_cp.vl["HCA_01"]["EA_Ruckfreigabe"]) or cam_cp.vl["HCA_01"]["EA_ACC_Sollstatus"] > 0 - # Update gas, brakes, and gearshift. - ret.gas = pt_cp.vl["Motor_20"]["MO_Fahrpedalrohwert_01"] / 100.0 - ret.gasPressed = ret.gas > 0 - ret.brake = pt_cp.vl["ESP_05"]["ESP_Bremsdruck"] / 250.0 # FIXME: this is pressure in Bar, not sure what OP expects - brake_pedal_pressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) - brake_pressure_detected = bool(pt_cp.vl["ESP_05"]["ESP_Fahrer_bremst"]) - ret.brakePressed = brake_pedal_pressed or brake_pressure_detected - ret.parkingBrake = bool(pt_cp.vl["Kombi_01"]["KBI_Handbremse"]) # FIXME: need to include an EPB check as well - - # Update gear and/or clutch position data. if self.CP.transmissionType == TransmissionType.automatic: ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) elif self.CP.transmissionType == TransmissionType.direct: @@ -101,73 +64,133 @@ def update(self, can_parsers) -> structs.CarState: else: ret.gearShifter = GearShifter.drive - # Update door and trunk/hatch lid open status. - ret.doorOpen = any([pt_cp.vl["Gateway_72"]["ZV_FT_offen"], - pt_cp.vl["Gateway_72"]["ZV_BT_offen"], - pt_cp.vl["Gateway_72"]["ZV_HFS_offen"], - pt_cp.vl["Gateway_72"]["ZV_HBFS_offen"], - pt_cp.vl["Gateway_72"]["ZV_HD_offen"]]) - - # Update seatbelt fastened status. - ret.seatbeltUnlatched = pt_cp.vl["Airbag_02"]["AB_Gurtschloss_FA"] != 3 + if self.CP.flags & VolkswagenFlags.MEB: + # MEB-specific + self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] + ret.fuelGauge = pt_cp.vl["Motor_16"]["MO_Energieinhalt_BMS"] # TODO: is this available on MQB as well? + + ret.wheelSpeeds = self.get_wheel_speeds( + pt_cp.vl["ESC_51"]["VL_Radgeschw"], + pt_cp.vl["ESC_51"]["VR_Radgeschw"], + pt_cp.vl["ESC_51"]["HL_Radgeschw"], + pt_cp.vl["ESC_51"]["HR_Radgeschw"], + ) + + ret.yawRate = pt_cp.vl["ESC_50"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["ESC_50"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD + hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) + #ret.carFaultedNonCritical = cam_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # TODO: test Emergency Assist + + drive_mode = ret.gearShifter == GearShifter.drive + ret.gas = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] + ret.brake = pt_cp.vl["ESC_51"]["Brake_Pressure"] + ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user + ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed + + ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], + pt_cp.vl["ZV_02"]["ZV_BT_offen"], + pt_cp.vl["ZV_02"]["ZV_HFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) + + if self.CP.enableBsm: + ret.leftBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Left"] > 0 + ret.rightBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Right"] > 0 + + ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) + ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) + + self.travel_assist_available = bool(cam_cp.vl["TA_01"]["Travel_Assist_Available"]) + self.acc_type = ext_cp.vl["ACC_18"]["ACC_Typ"] + self.esp_hold_confirmation = bool(pt_cp.vl["VMM_02"]["ESP_Hold"]) + acc_limiter_mode = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) + speed_limiter_mode = bool(pt_cp.vl["Motor_51"]["TSK_Limiter_ausgewaehlt"]) + + ret.cruiseState.available = pt_cp.vl["Motor_51"]["TSK_Status"] in (2, 3, 4, 5) + ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) + ret.cruiseState.speed = int(round(ext_cp.vl["MEB_ACC_01"]["ACC_Wunschgeschw_02"])) * CV.KPH_TO_MS if self.CP.pcmCruise else 0 + ret.accFaulted = drive_mode and pt_cp.vl["Motor_51"]["TSK_Status"] in (6, 7) + + ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_links"]) + ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_rechts"]) - # Consume blind-spot monitoring info/warning LED states, if available. - # Infostufe: BSM LED on, Warnung: BSM LED flashing - if self.CP.enableBsm: - ret.leftBlindspot = bool(ext_cp.vl["SWA_01"]["SWA_Infostufe_SWA_li"]) or bool(ext_cp.vl["SWA_01"]["SWA_Warnung_SWA_li"]) - ret.rightBlindspot = bool(ext_cp.vl["SWA_01"]["SWA_Infostufe_SWA_re"]) or bool(ext_cp.vl["SWA_01"]["SWA_Warnung_SWA_re"]) - - # Consume factory LDW data relevant for factory SWA (Lane Change Assist) - # and capture it for forwarding to the blind spot radar controller - self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} - - # Stock FCW is considered active if the release bit for brake-jerk warning - # is set. Stock AEB considered active if the partial braking or target - # braking release bits are set. - # Refer to VW Self Study Program 890253: Volkswagen Driver Assistance - # Systems, chapter on Front Assist with Braking: Golf Family for all MQB - ret.stockFcw = bool(ext_cp.vl["ACC_10"]["AWV2_Freigabe"]) - ret.stockAeb = bool(ext_cp.vl["ACC_10"]["ANB_Teilbremsung_Freigabe"]) or bool(ext_cp.vl["ACC_10"]["ANB_Zielbremsung_Freigabe"]) - - # Update ACC radar status. - self.acc_type = ext_cp.vl["ACC_06"]["ACC_Typ"] + else: + # MQB-specific + self.upscale_lead_car_signal = bool(pt_cp.vl["Kombi_03"]["KBI_Variante"]) # Analog vs digital instrument cluster + + ret.wheelSpeeds = self.get_wheel_speeds( + pt_cp.vl["ESP_19"]["ESP_VL_Radgeschw_02"], + pt_cp.vl["ESP_19"]["ESP_VR_Radgeschw_02"], + pt_cp.vl["ESP_19"]["ESP_HL_Radgeschw_02"], + pt_cp.vl["ESP_19"]["ESP_HR_Radgeschw_02"], + ) + + ret.yawRate = pt_cp.vl["ESP_02"]["ESP_Gierrate"] * (1, -1)[int(pt_cp.vl["ESP_02"]["ESP_VZ_Gierrate"])] * CV.DEG_TO_RAD + hca_status = self.CCP.hca_status_values.get(pt_cp.vl["LH_EPS_03"]["EPS_HCA_Status"]) + if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: + ret.carFaultedNonCritical = bool(cam_cp.vl["HCA_01"]["EA_Ruckfreigabe"]) or cam_cp.vl["HCA_01"]["EA_ACC_Sollstatus"] > 0 # EA + + drive_mode = True + ret.gas = pt_cp.vl["Motor_20"]["MO_Fahrpedalrohwert_01"] / 100.0 + ret.brake = pt_cp.vl["ESP_05"]["ESP_Bremsdruck"] / 250.0 # FIXME: this is pressure in Bar, not sure what OP expects + brake_pedal_pressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) + brake_pressure_detected = bool(pt_cp.vl["ESP_05"]["ESP_Fahrer_bremst"]) + ret.brakePressed = brake_pedal_pressed or brake_pressure_detected + ret.parkingBrake = bool(pt_cp.vl["Kombi_01"]["KBI_Handbremse"]) # FIXME: need to include an EPB check as well + + ret.doorOpen = any([pt_cp.vl["Gateway_72"]["ZV_FT_offen"], + pt_cp.vl["Gateway_72"]["ZV_BT_offen"], + pt_cp.vl["Gateway_72"]["ZV_HFS_offen"], + pt_cp.vl["Gateway_72"]["ZV_HBFS_offen"], + pt_cp.vl["Gateway_72"]["ZV_HD_offen"]]) + + if self.CP.enableBsm: + # Infostufe: BSM LED on, Warnung: BSM LED flashing + ret.leftBlindspot = bool(ext_cp.vl["SWA_01"]["SWA_Infostufe_SWA_li"]) or bool(ext_cp.vl["SWA_01"]["SWA_Warnung_SWA_li"]) + ret.rightBlindspot = bool(ext_cp.vl["SWA_01"]["SWA_Infostufe_SWA_re"]) or bool(ext_cp.vl["SWA_01"]["SWA_Warnung_SWA_re"]) + + ret.stockFcw = bool(ext_cp.vl["ACC_10"]["AWV2_Freigabe"]) + ret.stockAeb = bool(ext_cp.vl["ACC_10"]["ANB_Teilbremsung_Freigabe"]) or bool(ext_cp.vl["ACC_10"]["ANB_Zielbremsung_Freigabe"]) + + self.acc_type = ext_cp.vl["ACC_06"]["ACC_Typ"] + self.esp_hold_confirmation = bool(pt_cp.vl["ESP_21"]["ESP_Haltebestaetigung"]) + acc_limiter_mode = ext_cp.vl["ACC_02"]["ACC_Gesetzte_Zeitluecke"] == 0 + speed_limiter_mode = bool(pt_cp.vl["TSK_06"]["TSK_Limiter_ausgewaehlt"]) + + ret.cruiseState.available = pt_cp.vl["TSK_06"]["TSK_Status"] in (2, 3, 4, 5) + ret.cruiseState.enabled = pt_cp.vl["TSK_06"]["TSK_Status"] in (3, 4, 5) + ret.cruiseState.speed = ext_cp.vl["ACC_02"]["ACC_Wunschgeschw_02"] * CV.KPH_TO_MS if self.CP.pcmCruise else 0 + ret.accFaulted = pt_cp.vl["TSK_06"]["TSK_Status"] in (6, 7) + + ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["Comfort_Signal_Left"]) + ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["Comfort_Signal_Right"]) + + # Shared logic - # ACC okay but disabled (1), ACC ready (2), a radar visibility or other fault/disruption (6 or 7) - # currently regulating speed (3), driver accel override (4), brake only (5) - ret.cruiseState.available = pt_cp.vl["TSK_06"]["TSK_Status"] in (2, 3, 4, 5) - ret.cruiseState.enabled = pt_cp.vl["TSK_06"]["TSK_Status"] in (3, 4, 5) + ret.vEgoRaw = float(np.mean([ret.wheelSpeeds.fl, ret.wheelSpeeds.fr, ret.wheelSpeeds.rl, ret.wheelSpeeds.rr])) + ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) - if self.CP.pcmCruise: - # Cruise Control mode; check for distance UI setting from the radar. - # ECM does not manage this, so do not need to check for openpilot longitudinal - ret.cruiseState.nonAdaptive = ext_cp.vl["ACC_02"]["ACC_Gesetzte_Zeitluecke"] == 0 - else: - # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = bool(pt_cp.vl["TSK_06"]["TSK_Limiter_ausgewaehlt"]) + ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] + ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] + ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] + ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE + ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status, drive_mode) - ret.accFaulted = pt_cp.vl["TSK_06"]["TSK_Status"] in (6, 7) + ret.gasPressed = ret.gas > 0 + ret.espActive = bool(pt_cp.vl["ESP_21"]["ESP_Eingriff"]) + ret.espDisabled = pt_cp.vl["ESP_21"]["ESP_Tastung_passiv"] != 0 + ret.seatbeltUnlatched = pt_cp.vl["Airbag_02"]["AB_Gurtschloss_FA"] != 3 - self.esp_hold_confirmation = bool(pt_cp.vl["ESP_21"]["ESP_Haltebestaetigung"]) + ret.standstill = ret.vEgoRaw == 0 ret.cruiseState.standstill = self.CP.pcmCruise and self.esp_hold_confirmation + ret.cruiseState.nonAdaptive = acc_limiter_mode or speed_limiter_mode + if ret.cruiseState.speed > 90: + ret.cruiseState.speed = 0 - # Update ACC setpoint. When the setpoint is zero or there's an error, the - # radar sends a set-speed of ~90.69 m/s / 203mph. - if self.CP.pcmCruise: - ret.cruiseState.speed = ext_cp.vl["ACC_02"]["ACC_Wunschgeschw_02"] * CV.KPH_TO_MS - if ret.cruiseState.speed > 90: - ret.cruiseState.speed = 0 - - # Update button states for turn signals and ACC controls, capture all ACC button state/config for passthrough - ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["Comfort_Signal_Left"]) - ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["Comfort_Signal_Right"]) - ret.buttonEvents = self.create_button_events(pt_cp, self.CCP.BUTTONS) + self.eps_stock_values = pt_cp.vl["LH_EPS_03"] + self.ldw_stock_values = cam_cp.vl["LDW_02"] if self.CP.networkLocation == NetworkLocation.fwdCamera else {} self.gra_stock_values = pt_cp.vl["GRA_ACC_01"] - # Additional safety checks performed in CarInterface. - ret.espDisabled = pt_cp.vl["ESP_21"]["ESP_Tastung_passiv"] != 0 - - # Digital instrument clusters expect the ACC HUD lead car distance to be scaled differently - self.upscale_lead_car_signal = bool(pt_cp.vl["Kombi_03"]["KBI_Variante"]) + ret.buttonEvents = self.create_button_events(pt_cp, self.CCP.BUTTONS) self.frame += 1 return ret @@ -271,113 +294,6 @@ def update_pq(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: self.frame += 1 return ret - def update_meb(self, pt_cp, cam_cp, ext_cp) -> structs.CarState: - ret = structs.CarState() - # Update vehicle speed and acceleration from ABS wheel speeds. - ret.wheelSpeeds = self.get_wheel_speeds( - pt_cp.vl["ESC_51"]["VL_Radgeschw"], - pt_cp.vl["ESC_51"]["VR_Radgeschw"], - pt_cp.vl["ESC_51"]["HL_Radgeschw"], - pt_cp.vl["ESC_51"]["HR_Radgeschw"], - ) - - ret.vEgoRaw = float(np.mean([ret.wheelSpeeds.fl, ret.wheelSpeeds.fr, ret.wheelSpeeds.rl, ret.wheelSpeeds.rr])) - ret.vEgo, ret.aEgo = self.update_speed_kf(ret.vEgoRaw) - ret.standstill = ret.vEgoRaw == 0 - - # Update gear and/or clutch position data. - ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) - drive_mode = ret.gearShifter == GearShifter.drive # TODO: look for a cleaner bit, but this will do for now - - # Update EPS position and state info. For signed values, VW sends the sign in a separate signal. - # LWI_01, MEP_EPS_01 steering angle differs from real steering angle (dynamic steering) - ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] - ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] - ret.steeringTorque = pt_cp.vl["LH_EPS_03"]["EPS_Lenkmoment"] * (1, -1)[int(pt_cp.vl["LH_EPS_03"]["EPS_VZ_Lenkmoment"])] - ret.steeringPressed = abs(ret.steeringTorque) > self.CCP.STEER_DRIVER_ALLOWANCE - - ret.yawRate = pt_cp.vl["ESC_50"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["ESC_50"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD - self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] - - hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) - ret.steerFaultTemporary, ret.steerFaultPermanent = self.update_hca_state(hca_status, drive_mode) - - # VW Emergency Assist status tracking and mitigation - self.eps_stock_values = pt_cp.vl["LH_EPS_03"] - #ret.carFaultedNonCritical = cam_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # prepared, not tested - - # Update gas, brakes, and gearshift. - ret.gasPressed = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] > 0 - ret.gas = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] - ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user - ret.brake = pt_cp.vl["ESC_51"]["Brake_Pressure"] - ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed - # regen braking bool(pt_cp.vl["ESC_50"]['Regen_Braking']) TODO - - # Update door and trunk/hatch lid open status. - ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], - pt_cp.vl["ZV_02"]["ZV_BT_offen"], - pt_cp.vl["ZV_02"]["ZV_HFS_offen"], - pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], - pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) - - # Update seatbelt fastened status. - ret.seatbeltUnlatched = pt_cp.vl["Airbag_02"]["AB_Gurtschloss_FA"] != 3 - - # Consume blind-spot monitoring info/warning LED states, if available. - # Infostufe: BSM LED on, Warnung: BSM LED flashing - if self.CP.enableBsm: - ret.leftBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Left"] > 0 - ret.rightBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Right"] > 0 - - # Consume factory LDW data relevant for factory SWA (Lane Change Assist) - # and capture it for forwarding to the blind spot radar controller - self.ldw_stock_values = cam_cp.vl["LDW_02"] - - ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) - ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) - - self.acc_type = ext_cp.vl["ACC_18"]["ACC_Typ"] - self.travel_assist_available = bool(cam_cp.vl["TA_01"]["Travel_Assist_Available"]) - - ret.cruiseState.available = pt_cp.vl["Motor_51"]["TSK_Status"] in (2, 3, 4, 5) - ret.cruiseState.enabled = pt_cp.vl["Motor_51"]["TSK_Status"] in (3, 4, 5) - ret.accFaulted = drive_mode and pt_cp.vl["Motor_51"]["TSK_Status"] in (6, 7) - - if self.CP.pcmCruise: - # Cruise Control mode; check for distance UI setting from the radar. - # ECM does not manage this, so do not need to check for openpilot longitudinal - ret.cruiseState.nonAdaptive = bool(ext_cp.vl["MEB_ACC_01"]["ACC_Limiter_Mode"]) - else: - # Speed limiter mode; ECM faults if we command ACC while not pcmCruise - ret.cruiseState.nonAdaptive = bool(pt_cp.vl["Motor_51"]["TSK_Limiter_ausgewaehlt"]) - - self.esp_hold_confirmation = bool(pt_cp.vl["VMM_02"]["ESP_Hold"]) - ret.cruiseState.standstill = self.CP.pcmCruise and self.esp_hold_confirmation - - # Update ACC setpoint. When the setpoint is zero or there's an error, the - # radar sends a set-speed of ~90.69 m/s / 203mph. - if self.CP.pcmCruise: - ret.cruiseState.speed = int(round(ext_cp.vl["MEB_ACC_01"]["ACC_Wunschgeschw_02"])) * CV.KPH_TO_MS - if ret.cruiseState.speed > 90: - ret.cruiseState.speed = 0 - - # Update button states for turn signals and ACC controls, capture all ACC button state/config for passthrough - ret.leftBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_links"]) - ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["BM_rechts"]) - ret.buttonEvents = self.create_button_events(pt_cp, self.CCP.BUTTONS) - self.gra_stock_values = pt_cp.vl["GRA_ACC_01"] - - # Additional safety checks performed in CarInterface. - ret.espDisabled = bool(pt_cp.vl["ESP_21"]["ESP_Tastung_passiv"]) # this is also true for ESC Sport mode - ret.espActive = bool(pt_cp.vl["ESP_21"]["ESP_Eingriff"]) - - # EV battery charge WattHours - ret.fuelGauge = pt_cp.vl["Motor_16"]["MO_Energieinhalt_BMS"] - - self.frame += 1 - return ret - def update_hca_state(self, hca_status, drive_mode=True): # Treat FAULT as temporary for worst likely EPS recovery time, for cars without factory Lane Assist # DISABLED means the EPS hasn't been configured to support Lane Assist diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 8f8ee6b9839..5aae18d4821 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -37,7 +37,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] ret.enableBsm = False # ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 - ret.transmissionType = TransmissionType.direct ret.steerControlType = structs.CarParams.SteerControlType.angle if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, QFK_01 From 8424c8704b22b6ac89aa808f49d22728685ebfa1 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 02:16:05 -0500 Subject: [PATCH 577/653] combine identical mqbcan/mebcan packers --- opendbc/car/volkswagen/mebcan.py | 64 ++++---------------------------- 1 file changed, 8 insertions(+), 56 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index e9d9705a4fb..78228289ac8 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -1,3 +1,11 @@ +import opendbc.car.volkswagen.mqbcan as mqbcan + + +create_eps_update = mqbcan.create_eps_update +create_lka_hud_control = mqbcan.create_lka_hud_control +create_acc_buttons_control = mqbcan.create_acc_buttons_control + + ACC_CTRL_ERROR = 6 ACC_CTRL_OVERRIDE = 4 ACC_CTRL_ACTIVE = 3 @@ -30,62 +38,6 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, p return packer.make_can_msg("HCA_03", bus, values) -def create_eps_update(packer, bus, eps_stock_values, ea_simulated_torque): - values = {s: eps_stock_values[s] for s in [ - "COUNTER", # Sync counter value to EPS output - "EPS_Lenkungstyp", # EPS rack type - "EPS_Berechneter_LW", # Absolute raw steering angle - "EPS_VZ_BLW", # Raw steering angle sign - "EPS_HCA_Status", # EPS HCA control status - ]} - - values.update({ - # Absolute driver torque input and sign, with EA inactivity mitigation - "EPS_Lenkmoment": abs(ea_simulated_torque), - "EPS_VZ_Lenkmoment": 1 if ea_simulated_torque < 0 else 0, - }) - - return packer.make_can_msg("LH_EPS_03", bus, values) - - -def create_lka_hud_control(packer, bus, ldw_stock_values, lat_active, steering_pressed, hud_alert, hud_control): - values = {} - if len(ldw_stock_values): - values = {s: ldw_stock_values[s] for s in [ - "LDW_SW_Warnung_links", # Blind spot in warning mode on left side due to lane departure - "LDW_SW_Warnung_rechts", # Blind spot in warning mode on right side due to lane departure - "LDW_Seite_DLCTLC", # Direction of most likely lane departure (left or right) - "LDW_DLC", # Lane departure, distance to line crossing - "LDW_TLC", # Lane departure, time to line crossing - ]} - - values.update({ - "LDW_Status_LED_gelb": 1 if lat_active and steering_pressed else 0, - "LDW_Status_LED_gruen": 1 if lat_active and not steering_pressed else 0, - "LDW_Lernmodus_links": 3 if hud_control.leftLaneDepart else 1 + hud_control.leftLaneVisible, - "LDW_Lernmodus_rechts": 3 if hud_control.rightLaneDepart else 1 + hud_control.rightLaneVisible, - "LDW_Texte": hud_alert, - }) - return packer.make_can_msg("LDW_02", bus, values) - - -def create_acc_buttons_control(packer, bus, gra_stock_values, cancel=False, resume=False): - values = {s: gra_stock_values[s] for s in [ - "GRA_Hauptschalter", # ACC button, on/off - "GRA_Typ_Hauptschalter", # ACC main button type - "GRA_Codierung", # ACC button configuration/coding - "GRA_Tip_Stufe_2", # unknown related to stalk type - "GRA_ButtonTypeInfo", # unknown related to stalk type - ]} - - values.update({ - "COUNTER": (gra_stock_values["COUNTER"] + 1) % 16, - "GRA_Abbrechen": cancel, - "GRA_Tip_Wiederaufnahme": resume, - }) - return packer.make_can_msg("GRA_ACC_01", bus, values) - - def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): if acc_faulted: From 37a5e8aada8bf38260ba4f1476bb6c22da40a324 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 02:29:54 -0500 Subject: [PATCH 578/653] garbage collection --- opendbc/car/volkswagen/carcontroller.py | 3 --- opendbc/car/volkswagen/values.py | 2 -- 2 files changed, 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 43fe421f344..0355962bd7c 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -55,9 +55,6 @@ def update(self, CC, CS, now_nanos): # Adjust our curvature command by the offset between openpilot's current curvature and the QFK's current curvature actuator_curvature_with_offset = actuators.curvature + (CS.curvature - CC.currentCurvature) apply_curvature = apply_std_steer_angle_limits(actuator_curvature_with_offset, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) - # TODO: verify, this shouldn't be necessary and appears to be hurting us in some cases - #if CS.out.steeringPressed: # roughly sync with user input - # apply_curvature = np.clip(apply_curvature, current_curvature - self.CCP.CURVATURE_ERROR, current_curvature + self.CCP.CURVATURE_ERROR) apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) # FIXME: implement power control, backoff on driver input torque diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index be5f232e6dc..0a4045ff4c7 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -80,9 +80,7 @@ def __init__(self, CP): self.STEERING_POWER_MAX = 125 # HCA_03 maximum steering power self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps - self.STEERING_POWER_MAX_BY_SPEED = 20 # HCA_03 speed in m/s^2 where maximum steering power is reached self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m - self.CURVATURE_ERROR = 0.01 # HCA_03 curvature error self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.0015, 0.00015]) # curvature safety limit up self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.002, 0.00035]) # curvature safety limit down self.CURVATURE_POWER_FACTOR = 4000 From 1235a8e89f117670d50dc0de7c64f8de73420546 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 02:41:28 -0500 Subject: [PATCH 579/653] use auto trans type --- opendbc/car/volkswagen/interface.py | 1 + 1 file changed, 1 insertion(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 5aae18d4821..076437f63a2 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -38,6 +38,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.enableBsm = False # ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.steerControlType = structs.CarParams.SteerControlType.angle + ret.transmissionType = TransmissionType.automatic if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, QFK_01 ret.networkLocation = NetworkLocation.gateway From 305be7dc11f686a1cc650796f206a9ebc0db3257 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 02:53:35 -0500 Subject: [PATCH 580/653] revert README changes --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index ee75e6c6b53..8829a2e87ab 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,3 @@ -

- VW MEB DBC signals with MEB_ prefix are candidates and could be wrong or have incorrect scalings
- The same is valid for following signals that were named with probably correct VW signal names:
- EM1_01, AWV_03, ESC_51, ESC_50, VMM_01, Motor_51, VMM_02, QFK_01, Motor_54, ACC_18, SAM_01, Parken_01, EML_06, TA_01, APS_Master, Gateway_73
-

-

opendbc

From e140c8031d41c5310701ae5175aecc4ef1534302 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 03:01:36 -0500 Subject: [PATCH 581/653] consolidate checksum handling code --- opendbc/can/common.cc | 67 +++++++++------------------------------- opendbc/can/common.h | 3 +- opendbc/can/common.pxd | 3 +- opendbc/can/common_dbc.h | 3 +- opendbc/can/dbc.cc | 6 ++-- 5 files changed, 20 insertions(+), 62 deletions(-) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index 866cafaa740..ada6033420c 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -116,14 +116,18 @@ struct CrcInitializer { static CrcInitializer crcInitializer; -static const std::unordered_map> volkswagen_mqb_crc_constants { +static const std::unordered_map> volkswagen_mxb_crc_constants { {0x40, {0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40}}, // Airbag_01 {0x86, {0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}}, // LWI_01 {0x9F, {0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}}, // LH_EPS_03 {0xAD, {0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}}, // Getriebe_11 + {0x0DB, {0x09, 0xFA, 0xCA, 0x8E, 0x62, 0xD5, 0xD1, 0xF0, 0x31, 0xA0, 0xAF, 0xDA, 0x4D, 0x1A, 0x0A, 0x97}}, // AWV_03 + {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // ESC_51 {0xFD, {0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}}, // ESP_21 {0x101, {0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA}}, // ESP_02 + {0x102, {0xD7, 0x12, 0x85, 0x7E, 0x0B, 0x34, 0xFA, 0x16, 0x7A, 0x25, 0x2D, 0x8F, 0x04, 0x8E, 0x5D, 0x35}}, // ESC_50 {0x106, {0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07}}, // ESP_05 + {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // Motor_51 {0x116, {0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC}}, // ESP_10 {0x117, {0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16, 0x16}}, // ACC_10 {0x120, {0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}}, // TSK_06 @@ -132,17 +136,24 @@ static const std::unordered_map> volkswagen_mq {0x126, {0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}}, // HCA_01 {0x12B, {0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}}, // GRA_ACC_01 {0x12E, {0xF8, 0xE5, 0x97, 0xC9, 0xD6, 0x07, 0x47, 0x21, 0x66, 0xDD, 0xCF, 0x6F, 0xA1, 0x94, 0x74, 0x63}}, // ACC_07 + {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // VMM_02 + {0x13D, {0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}}, // QFK_01 + {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // Motor_54 + {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // ACC_18 {0x187, {0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}}, // Motor_EV_01 {0x1AB, {0x13, 0x21, 0x9B, 0x6A, 0x9A, 0x62, 0xD4, 0x65, 0x18, 0xF1, 0xAB, 0x16, 0x32, 0x89, 0xE7, 0x26}}, // ESP_33 + {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // EML_06 + {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // TA_01 {0x30C, {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}}, // ACC_02 {0x30F, {0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C}}, // SWA_01 {0x324, {0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27}}, // ACC_04 + {0x3BE, {0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}}, // Motor_14 {0x3C0, {0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}}, // Klemmen_Status_01 {0x3D5, {0xC5, 0x39, 0xC7, 0xF9, 0x92, 0xD8, 0x24, 0xCE, 0xF1, 0xB5, 0x7A, 0xC4, 0xBC, 0x60, 0xE3, 0xD1}}, // Licht_Anf_01 {0x65D, {0xAC, 0xB3, 0xAB, 0xEB, 0x7A, 0xE1, 0x3B, 0xF7, 0x73, 0xBA, 0x7C, 0x9E, 0x06, 0x5F, 0x02, 0xD9}}, // ESP_20 }; -unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const std::vector &d) { +unsigned int volkswagen_mxb_checksum(uint32_t address, const Signal &sig, const std::vector &d) { // This is AUTOSAR E2E Profile 2, CRC-8H2F with a "data ID" (varying by message/counter) appended to the payload uint8_t crc = 0xFF; // CRC-8H2F initial value @@ -156,8 +167,8 @@ unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const // Continue CRC over the "data ID" uint8_t counter = d[1] & 0x0F; - auto crc_const = volkswagen_mqb_crc_constants.find(address); - if (crc_const != volkswagen_mqb_crc_constants.end()) { + auto crc_const = volkswagen_mxb_crc_constants.find(address); + if (crc_const != volkswagen_mxb_crc_constants.end()) { crc ^= crc_const->second[counter]; crc = crc8_lut_8h2f[crc]; } else { @@ -181,54 +192,6 @@ unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector return checksum; } -static const std::unordered_map> volkswagen_meb_crc_constants { - {0x0DB, {0x09, 0xFA, 0xCA, 0x8E, 0x62, 0xD5, 0xD1, 0xF0, 0x31, 0xA0, 0xAF, 0xDA, 0x4D, 0x1A, 0x0A, 0x97}}, // AWV_03 Front Collision - {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // TA_01 Travel Assist - {0x139, {0xED, 0x03, 0x1C, 0x13, 0xC6, 0x23, 0x78, 0x7A, 0x8B, 0x40, 0x14, 0x51, 0xBF, 0x68, 0x32, 0xBA}}, // VMM_02 - {0x102, {0xD7, 0x12, 0x85, 0x7E, 0x0B, 0x34, 0xFA, 0x16, 0x7A, 0x25, 0x2D, 0x8F, 0x04, 0x8E, 0x5D, 0x35}}, // ESC_50 - {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // Motor_54 - {0x10B, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // Motor_51 - {0xFC, {0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}}, // ESC_51 - {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // EML_06 - {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // ACC_18 Distance Control - {0x13D, {0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}}, // QFK_01 Steering Status - {0x86, {0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86}}, // LWI_01 Steering Angle - {0x9F, {0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5}}, // LH_EPS_03 Electric Power Steering - {0xAD, {0x3F, 0x69, 0x39, 0xDC, 0x94, 0xF9, 0x14, 0x64, 0xD8, 0x6A, 0x34, 0xCE, 0xA2, 0x55, 0xB5, 0x2C}}, // Getriebe_11 Automatic Gearbox - {0xFD, {0xB4, 0xEF, 0xF8, 0x49, 0x1E, 0xE5, 0xC2, 0xC0, 0x97, 0x19, 0x3C, 0xC9, 0xF1, 0x98, 0xD6, 0x61}}, // ESP_21 Electronic Stability Program - {0x3BE, {0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}}, // Motor_14 Driver Brake Inputs - {0x121, {0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}}, // Motor_20 Driver Throttle Inputs - {0x126, {0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA}}, // HCA_01 Heading Control Assist - {0x12B, {0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}}, // GRA_ACC_01 Steering wheel controls for ACC - {0x3C0, {0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3}}, // Klemmen_Status_01 ignition and starting status - {0x65D, {0xAC, 0xB3, 0xAB, 0xEB, 0x7A, 0xE1, 0x3B, 0xF7, 0x73, 0xBA, 0x7C, 0x9E, 0x06, 0x5F, 0x02, 0xD9}}, // ESP_20 Electronic Stability Program -}; - -unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const std::vector &d) { - // This is AUTOSAR E2E Profile 2, CRC-8H2F with a "data ID" (varying by message/counter) appended to the payload - - uint8_t crc = 0xFF; // CRC-8H2F initial value - - // CRC over payload first, skipping the first byte where the CRC lives - for (int i = 1; i < d.size(); i++) { - crc ^= d[i]; - crc = crc8_lut_8h2f[crc]; - } - - // Continue CRC over the "data ID" - uint8_t counter = d[1] & 0x0F; - - auto crc_const = volkswagen_meb_crc_constants.find(address); - if (crc_const != volkswagen_meb_crc_constants.end()) { - crc ^= crc_const->second[counter]; - crc = crc8_lut_8h2f[crc]; - } else { - printf("Attempt to CRC check undefined Volkswagen message 0x%02X\n", address); - } - - return crc ^ 0xFF; // CRC-8H2F final XOR -} - unsigned int pedal_checksum(uint32_t address, const Signal &sig, const std::vector &d) { uint8_t crc = 0xFF; uint8_t poly = 0xD5; // standard crc8 diff --git a/opendbc/can/common.h b/opendbc/can/common.h index b07f963fb06..aa84343eb5f 100644 --- a/opendbc/can/common.h +++ b/opendbc/can/common.h @@ -23,8 +23,7 @@ unsigned int honda_checksum(uint32_t address, const Signal &sig, const std::vect unsigned int toyota_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int subaru_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int chrysler_checksum(uint32_t address, const Signal &sig, const std::vector &d); -unsigned int volkswagen_mqb_checksum(uint32_t address, const Signal &sig, const std::vector &d); -unsigned int volkswagen_meb_checksum(uint32_t address, const Signal &sig, const std::vector &d); +unsigned int volkswagen_mxb_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int xor_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int hkg_can_fd_checksum(uint32_t address, const Signal &sig, const std::vector &d); unsigned int fca_giorgio_checksum(uint32_t address, const Signal &sig, const std::vector &d); diff --git a/opendbc/can/common.pxd b/opendbc/can/common.pxd index 3d029d2b5b5..7815082732b 100644 --- a/opendbc/can/common.pxd +++ b/opendbc/can/common.pxd @@ -19,8 +19,7 @@ cdef extern from "common_dbc.h": HONDA_CHECKSUM, TOYOTA_CHECKSUM, PEDAL_CHECKSUM, - VOLKSWAGEN_MQB_CHECKSUM, - VOLKSWAGEN_MEB_CHECKSUM, + VOLKSWAGEN_MXB_CHECKSUM, XOR_CHECKSUM, SUBARU_CHECKSUM, CHRYSLER_CHECKSUM diff --git a/opendbc/can/common_dbc.h b/opendbc/can/common_dbc.h index 0ffbfde91d8..04263a7ca78 100644 --- a/opendbc/can/common_dbc.h +++ b/opendbc/can/common_dbc.h @@ -16,8 +16,7 @@ enum SignalType { HONDA_CHECKSUM, TOYOTA_CHECKSUM, PEDAL_CHECKSUM, - VOLKSWAGEN_MQB_CHECKSUM, - VOLKSWAGEN_MEB_CHECKSUM, + VOLKSWAGEN_MXB_CHECKSUM, XOR_CHECKSUM, SUBARU_CHECKSUM, CHRYSLER_CHECKSUM, diff --git a/opendbc/can/dbc.cc b/opendbc/can/dbc.cc index 7885e79adb0..76215174367 100644 --- a/opendbc/can/dbc.cc +++ b/opendbc/can/dbc.cc @@ -57,10 +57,8 @@ ChecksumState* get_checksum(const std::string& dbc_name) { s = new ChecksumState({8, -1, 7, -1, false, TOYOTA_CHECKSUM, &toyota_checksum}); } else if (startswith(dbc_name, "hyundai_canfd")) { s = new ChecksumState({16, -1, 0, -1, true, HKG_CAN_FD_CHECKSUM, &hkg_can_fd_checksum}); - } else if (startswith(dbc_name, {"vw_mqb_2010", "vw_mqbevo"})) { - s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MQB_CHECKSUM, &volkswagen_mqb_checksum}); - } else if (startswith(dbc_name, "vw_meb")) { - s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MEB_CHECKSUM, &volkswagen_meb_checksum}); + } else if (startswith(dbc_name, {"vw_mqb_2010", "vw_mqbevo", "vw_meb"})) { + s = new ChecksumState({8, 4, 0, 0, true, VOLKSWAGEN_MXB_CHECKSUM, &volkswagen_mxb_checksum}); } else if (startswith(dbc_name, "vw_golf_mk4")) { s = new ChecksumState({8, 4, 0, -1, true, XOR_CHECKSUM, &xor_checksum}); } else if (startswith(dbc_name, "subaru_global_")) { From 8e3aa24ad82b7c1466470f9cb03abe0447e63642 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 14:26:33 -0500 Subject: [PATCH 582/653] re-enable BSM --- opendbc/car/volkswagen/interface.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 076437f63a2..9cfe719431f 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -35,8 +35,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] - ret.enableBsm = False - # ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 + ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.steerControlType = structs.CarParams.SteerControlType.angle ret.transmissionType = TransmissionType.automatic From d09f5edaf838b7a39b3743e4af4e253b64706238 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 15:09:29 -0500 Subject: [PATCH 583/653] BSM signal fixes, tolerate Side Assist being disabled --- opendbc/car/volkswagen/carstate.py | 4 ++-- opendbc/dbc/vw_meb.dbc | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 628e711fdb1..4c688bb7e86 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -93,8 +93,8 @@ def update(self, can_parsers) -> structs.CarState: pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) if self.CP.enableBsm: - ret.leftBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Left"] > 0 - ret.rightBlindspot = ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Right"] > 0 + ret.leftBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Left"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warning_Left"]) + ret.rightBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Right"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warning_Right"]) ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index e396222b91b..c1c3bc49a03 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -505,10 +505,10 @@ BO_ 564 MEB_Camera_02: 64 XXX BO_ 588 MEB_Side_Assist_01: 16 XXX SG_ Blind_Spot_Right : 12|7@1+ (1,0) [0|15] "" XXX SG_ Blind_Spot_Left : 19|7@1+ (1,0) [0|15] "" XXX - SG_ Blind_Spot_Warn_Right : 26|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Pre_Warn_Right : 27|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Warn_Left : 29|1@0+ (1,0) [0|1] "" XXX - SG_ Blind_Spot_Pre_Warn_Left : 30|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Info_Right : 26|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Warn_Right : 27|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Info_Left : 29|1@0+ (1,0) [0|1] "" XXX + SG_ Blind_Spot_Warn_Left : 30|1@0+ (1,0) [0|1] "" XXX SG_ Lower_Speed_01 : 32|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_01 : 33|1@0+ (1,0) [0|1] "" XXX SG_ Higher_Speed_02 : 83|1@0+ (1,0) [0|1] "" XXX From 09d0f220122e6af0c30817665fbc1ab2e535456e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 15:18:15 -0500 Subject: [PATCH 584/653] fix Blinkmodi_02 frequency --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 4c688bb7e86..633440e2364 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -418,7 +418,7 @@ def get_can_parsers_meb(CP): ("Airbag_02", 5), # From J234 Airbag control module ("Motor_14", 10), # From J623 Engine control module ("Motor_16", 2), # From J623 Engine control module - ("Blinkmodi_02", 2), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) + ("Blinkmodi_02", 1), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors ("Getriebe_11", 100), # From J743 Auto transmission control module ("ZV_02", 5), # From ZV From 068e20d2512367f0f892a0a6eab9f6c64966c548 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 15:51:46 -0500 Subject: [PATCH 585/653] EA mitigation --- opendbc/can/common.cc | 1 + opendbc/car/volkswagen/carcontroller.py | 5 ++++- opendbc/car/volkswagen/carstate.py | 1 - opendbc/car/volkswagen/mebcan.py | 8 ++++++++ opendbc/safety/safety/safety_volkswagen_meb.h | 7 ++++--- opendbc/safety/tests/test_volkswagen_meb.py | 9 +++++---- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index fc0f74acfaf..f610c6cc17c 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -141,6 +141,7 @@ static const std::unordered_map> volkswagen_mq {0x14C, {0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}}, // Motor_54 {0x14D, {0x1A, 0x65, 0x81, 0x96, 0xC0, 0xDF, 0x11, 0x92, 0xD3, 0x61, 0xC6, 0x95, 0x8C, 0x29, 0x21, 0xB5}}, // ACC_18 {0x187, {0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}}, // Motor_EV_01 + {0x1A4, {0x69, 0xBB, 0x54, 0xE6, 0x4E, 0x46, 0x8D, 0x7B, 0xEA, 0x87, 0xE9, 0xB3, 0x63, 0xCE, 0xF8, 0xBF}}, // EA_01 {0x1AB, {0x13, 0x21, 0x9B, 0x6A, 0x9A, 0x62, 0xD4, 0x65, 0x18, 0xF1, 0xAB, 0x16, 0x32, 0x89, 0xE7, 0x26}}, // ESP_33 {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // EML_06 {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // TA_01 diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 0355962bd7c..64e71774cd3 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -109,7 +109,10 @@ def update(self, CC, CS, now_nanos): self.apply_steer_last = apply_steer can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_steer, hca_enabled)) - if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: + if self.CP.flags & VolkswagenFlags.MEB: + # Mitigate VW Emergency Assist driver inactivity detection by filtering the stock EA_01 message + can_sends.append(mebcan.create_ea_control(self.packer_pt, CANBUS.pt)) + elif self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque # to the greatest of actual driver input or 2x openpilot's output (1x openpilot output is not enough to # consistently reset inactivity detection on straight level roads). See commaai/openpilot#23274 for background. diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 633440e2364..b15016d21ba 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -78,7 +78,6 @@ def update(self, can_parsers) -> structs.CarState: ret.yawRate = pt_cp.vl["ESC_50"]["Yaw_Rate"] * (1, -1)[int(pt_cp.vl["ESC_50"]["Yaw_Rate_Sign"])] * CV.DEG_TO_RAD hca_status = self.CCP.hca_status_values.get(pt_cp.vl["QFK_01"]["LatCon_HCA_Status"]) - #ret.carFaultedNonCritical = cam_cp.vl["EA_01"]["EA_Funktionsstatus"] in (3, 4, 5, 6) # TODO: test Emergency Assist drive_mode = ret.gearShifter == GearShifter.drive ret.gas = pt_cp.vl["Motor_54"]["Accelerator_Pressure"] diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 78228289ac8..26e0b338450 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -38,6 +38,14 @@ def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, p return packer.make_can_msg("HCA_03", bus, values) +def create_ea_control(packer, bus): + values = { + "EA_Funktionsstatus": 1, # Configured but disabled + "EA_Sollbeschleunigung": 2046, # Inactive value + } + return packer.make_can_msg("EA_01", bus, values) + + def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): if acc_faulted: diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d0b3616c932..a7289e991b2 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -7,6 +7,7 @@ #define MSG_Motor_54 0x14C // RX, for accel pedal #define MSG_ESC_50 0x102 // RX, for yaw rate #define MSG_VMM_02 0x139 // RX, for ESP hold management +#define MSG_EA_01 0x1A4 // TX, for EA mitigation #define MSG_EML_06 0x20A // RX, for yaw rate #define MSG_HCA_03 0x303 // TX by OP, Heading Control Assist steering torque #define MSG_QFK_01 0x13D // RX, for steering angle @@ -90,11 +91,11 @@ static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration - static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_GRA_ACC_01, 0, 8}, + static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_EA_01, 0, 8}, {MSG_GRA_ACC_01, 0, 8}, {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}}; static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, - {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; + {MSG_EA_01, 0, 8}, {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; static RxCheck volkswagen_meb_rx_checks[] = { {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, @@ -324,7 +325,7 @@ static int volkswagen_meb_fwd_hook(int bus_num, int addr) { bus_fwd = 2; break; case 2: - if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02)) { + if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02) || (addr == MSG_EA_01)) { // openpilot takes over LKAS steering control and related HUD messages from the camera bus_fwd = -1; } else if (volkswagen_longitudinal && ((addr == MSG_MEB_ACC_01) || (addr == MSG_ACC_18) || (addr == MSG_TA_01))) { diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 438b017fb4b..0496c03d73d 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -15,6 +15,7 @@ MSG_Motor_54 = 0x14C # RX, for accel pedal MSG_ESC_50 = 0x102 # RX, for yaw rate MSG_VMM_02 = 0x139 # RX, for ESP hold management +MSG_EA_01 = 0x1A4 # TX, for EA mitigation MSG_EML_06 = 0x20A # RX, for yaw rate MSG_HCA_03 = 0x303 # TX by OP, Heading Control Assist steering torque MSG_QFK_01 = 0x13D # RX, for steering angle @@ -136,8 +137,8 @@ def test_torque_measurements(self): class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_EA_01, 0], [MSG_GRA_ACC_01, 2]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01]} FWD_BUS_LOOKUP = {0: 2, 2: 0} def setUp(self): @@ -157,8 +158,8 @@ def test_spam_cancel_safety_check(self): class TestVolkswagenMebLongSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_EA_01, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} FWD_BUS_LOOKUP = {0: 2, 2: 0} INACTIVE_ACCEL = 3.01 From cec9c6850ae25ffcd6ac36f221b3e11ef3ba70f0 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 16:03:45 -0500 Subject: [PATCH 586/653] bugfix --- opendbc/car/volkswagen/carstate.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index b15016d21ba..4520f84f11c 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -92,8 +92,8 @@ def update(self, can_parsers) -> structs.CarState: pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) if self.CP.enableBsm: - ret.leftBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Left"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warning_Left"]) - ret.rightBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Right"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warning_Right"]) + ret.leftBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Left"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warn_Left"]) + ret.rightBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Right"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warn_Right"]) ret.stockFcw = bool(pt_cp.vl["VMM_02"]["FCW_Active"]) or bool(ext_cp.vl["AWV_03"]["FCW_Active"]) ret.stockAeb = bool(pt_cp.vl["VMM_02"]["AEB_Active"]) From 44a80b0c5fdf447b758903c9004c71cd989cd5b5 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 16:40:17 -0500 Subject: [PATCH 587/653] more EA mitigation --- opendbc/can/common.cc | 1 + opendbc/car/volkswagen/carcontroller.py | 13 +++++++++---- opendbc/car/volkswagen/mebcan.py | 9 +++++++++ opendbc/dbc/vw_meb.dbc | 1 + opendbc/safety/safety/safety_volkswagen_meb.h | 7 ++++--- opendbc/safety/tests/test_volkswagen_meb.py | 9 +++++---- 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/opendbc/can/common.cc b/opendbc/can/common.cc index f610c6cc17c..9295db69303 100644 --- a/opendbc/can/common.cc +++ b/opendbc/can/common.cc @@ -143,6 +143,7 @@ static const std::unordered_map> volkswagen_mq {0x187, {0x7F, 0xED, 0x17, 0xC2, 0x7C, 0xEB, 0x44, 0x21, 0x01, 0xFA, 0xDB, 0x15, 0x4A, 0x6B, 0x23, 0x05}}, // Motor_EV_01 {0x1A4, {0x69, 0xBB, 0x54, 0xE6, 0x4E, 0x46, 0x8D, 0x7B, 0xEA, 0x87, 0xE9, 0xB3, 0x63, 0xCE, 0xF8, 0xBF}}, // EA_01 {0x1AB, {0x13, 0x21, 0x9B, 0x6A, 0x9A, 0x62, 0xD4, 0x65, 0x18, 0xF1, 0xAB, 0x16, 0x32, 0x89, 0xE7, 0x26}}, // ESP_33 + {0x1F0, {0x2F, 0x3C, 0x22, 0x60, 0x18, 0xEB, 0x63, 0x76, 0xC5, 0x91, 0x0F, 0x27, 0x34, 0x04, 0x7F, 0x02}}, // EA_02 {0x20A, {0x9D, 0xE8, 0x36, 0xA1, 0xCA, 0x3B, 0x1D, 0x33, 0xE0, 0xD5, 0xBB, 0x5F, 0xAE, 0x3C, 0x31, 0x9F}}, // EML_06 {0x26B, {0xCE, 0xCC, 0xBD, 0x69, 0xA1, 0x3C, 0x18, 0x76, 0x0F, 0x04, 0xF2, 0x3A, 0x93, 0x24, 0x19, 0x51}}, // TA_01 {0x30C, {0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F}}, // ACC_02 diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 64e71774cd3..43462a0ff2e 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -109,10 +109,7 @@ def update(self, CC, CS, now_nanos): self.apply_steer_last = apply_steer can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_steer, hca_enabled)) - if self.CP.flags & VolkswagenFlags.MEB: - # Mitigate VW Emergency Assist driver inactivity detection by filtering the stock EA_01 message - can_sends.append(mebcan.create_ea_control(self.packer_pt, CANBUS.pt)) - elif self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: + if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque # to the greatest of actual driver input or 2x openpilot's output (1x openpilot output is not enough to # consistently reset inactivity detection on straight level roads). See commaai/openpilot#23274 for background. @@ -121,6 +118,14 @@ def update(self, CC, CS, now_nanos): ea_simulated_torque = CS.out.steeringTorque can_sends.append(self.CCS.create_eps_update(self.packer_pt, CANBUS.cam, CS.eps_stock_values, ea_simulated_torque)) + # TODO: refactor a bit + if self.CP.flags & VolkswagenFlags.MEB: + if self.frame % 2 == 0: + can_sends.append(mebcan.create_ea_control(self.packer_pt, CANBUS.pt)) + if self.frame % 50 == 0: + can_sends.append(mebcan.create_ea_hud(self.packer_pt, CANBUS.pt)) + + # **** Acceleration Controls ******************************************** # if self.CP.openpilotLongitudinalControl: diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 26e0b338450..0fedc8e8327 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -43,9 +43,18 @@ def create_ea_control(packer, bus): "EA_Funktionsstatus": 1, # Configured but disabled "EA_Sollbeschleunigung": 2046, # Inactive value } + return packer.make_can_msg("EA_01", bus, values) +def create_ea_hud(packer, bus): + values = { + "EA_Unknown": 1, # Undocumented, value when inactive + } + + return packer.make_can_msg("EA_02", bus, values) + + def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): if acc_faulted: diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index c1c3bc49a03..3d8d76f2748 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -475,6 +475,7 @@ BO_ 496 EA_02: 8 Gateway SG_ STP_Primaeranz : 28|3@1+ (1,0) [0|7] "" Vector__XXX SG_ EA_Bremslichtblinken : 31|1@1+ (1,0) [0|1] "" Vector__XXX SG_ EA_Blinken : 32|3@1+ (1,0) [0|7] "" Vector__XXX + SG_ EA_Unknown : 60|3@0+ (1,0) [0|7] "" XXX BO_ 517 SAM_01: 8 XXX SG_ Brake_Light : 36|1@0+ (1,0) [0|1] "" XXX diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index a7289e991b2..c5817561201 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -8,6 +8,7 @@ #define MSG_ESC_50 0x102 // RX, for yaw rate #define MSG_VMM_02 0x139 // RX, for ESP hold management #define MSG_EA_01 0x1A4 // TX, for EA mitigation +#define MSG_EA_02 0x1F0 // TX, for EA mitigation #define MSG_EML_06 0x20A // RX, for yaw rate #define MSG_HCA_03 0x303 // TX by OP, Heading Control Assist steering torque #define MSG_QFK_01 0x13D // RX, for steering angle @@ -91,11 +92,11 @@ static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration - static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_EA_01, 0, 8}, {MSG_GRA_ACC_01, 0, 8}, + static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_EA_01, 0, 8}, {MSG_EA_02, 0, 8}, {MSG_GRA_ACC_01, 0, 8}, {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}}; static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, - {MSG_EA_01, 0, 8}, {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; + {MSG_EA_01, 0, 8}, {MSG_EA_02, 0, 8}, {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; static RxCheck volkswagen_meb_rx_checks[] = { {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, @@ -325,7 +326,7 @@ static int volkswagen_meb_fwd_hook(int bus_num, int addr) { bus_fwd = 2; break; case 2: - if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02) || (addr == MSG_EA_01)) { + if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02) || (addr == MSG_EA_01) || (addr == MSG_EA_02)) { // openpilot takes over LKAS steering control and related HUD messages from the camera bus_fwd = -1; } else if (volkswagen_longitudinal && ((addr == MSG_MEB_ACC_01) || (addr == MSG_ACC_18) || (addr == MSG_TA_01))) { diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 0496c03d73d..8d4b8bb0e19 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -16,6 +16,7 @@ MSG_ESC_50 = 0x102 # RX, for yaw rate MSG_VMM_02 = 0x139 # RX, for ESP hold management MSG_EA_01 = 0x1A4 # TX, for EA mitigation +MSG_EA_02 = 0x1F0 # TX, for EA mitigation MSG_EML_06 = 0x20A # RX, for yaw rate MSG_HCA_03 = 0x303 # TX by OP, Heading Control Assist steering torque MSG_QFK_01 = 0x13D # RX, for steering angle @@ -137,8 +138,8 @@ def test_torque_measurements(self): class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_EA_01, 0], [MSG_GRA_ACC_01, 2]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_EA_01, 0], [MSG_EA_02, 0], [MSG_GRA_ACC_01, 2]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_EA_02]} FWD_BUS_LOOKUP = {0: 2, 2: 0} def setUp(self): @@ -158,8 +159,8 @@ def test_spam_cancel_safety_check(self): class TestVolkswagenMebLongSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_EA_01, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_EA_01, 0], [MSG_EA_02, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] + FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_EA_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} FWD_BUS_LOOKUP = {0: 2, 2: 0} INACTIVE_ACCEL = 3.01 From acd0313d7979a952aad0f4d49a9f643cb6794985 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Sun, 23 Feb 2025 19:24:18 -0500 Subject: [PATCH 588/653] cleanup, will bring back other cars later --- opendbc/car/volkswagen/fingerprints.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/opendbc/car/volkswagen/fingerprints.py b/opendbc/car/volkswagen/fingerprints.py index ebc52273c04..694471f223e 100644 --- a/opendbc/car/volkswagen/fingerprints.py +++ b/opendbc/car/volkswagen/fingerprints.py @@ -349,21 +349,6 @@ b'\xf1\x875Q0907572S \xf1\x890780', ], }, - # preparation for ID.x models, firmwares have to be verified - #CAR.VOLKSWAGEN_ID3_MK1: { - # (Ecu.fwdRadar, 0x757, None): [ - # b'\xf1\x871EA907572H \xf1\x890234', - # b'\xf1\x871EA907572H \xf1\x890236', - # ], - #}, - #CAR.VOLKSWAGEN_ID4_MK1: { - # (Ecu.fwdRadar, 0x757, None): [ - # b'\xf1\x871EA907572J \xf1\x890235', - # b'\xf1\x871EA907572J \xf1\x890237', - # b'\xf1\x871EA907572K \xf1\x890236', # ID.5 - # b'\xf1\x871EA907572K \xf1\x890238', # ID.5 - # ], - #}, CAR.VOLKSWAGEN_JETTA_MK6: { (Ecu.srs, 0x715, None): [ b'\xf1\x875C0959655M \xf1\x890726\xf1\x82\t00NB1108--------24', From 8d070466a48e0fc037fbca89663415fe03a24b39 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 01:31:18 -0500 Subject: [PATCH 589/653] cleanup merge detritus --- opendbc/car/car.capnp | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/car.capnp b/opendbc/car/car.capnp index 98ef176760b..6b58f054f04 100644 --- a/opendbc/car/car.capnp +++ b/opendbc/car/car.capnp @@ -338,7 +338,6 @@ struct CarControl { enabled @0 :Bool; latActive @11: Bool; longActive @12: Bool; - currentCurvature @17 :Float32; # From vehicle model # Final actuator commands actuators @6 :Actuators; From 3aa0dd7d43cc69ad42451dce8e5e3e4354656fab Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 12:27:48 -0500 Subject: [PATCH 590/653] GC unused messages --- opendbc/car/volkswagen/carstate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 4520f84f11c..fe1d8ce1773 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -423,13 +423,11 @@ def get_can_parsers_meb(CP): ("ZV_02", 5), # From ZV ("QFK_01", 100), # From Steering ("ESP_21", 50), # - ("EML_06", 50), # ("ESC_51", 100), # ("Motor_54", 10), # ("ESC_50", 50), # ("VMM_02", 50), # ("Gateway_73", 20), # - ("SAM_01", 5), # ("Motor_51", 50), # ] From c8ce2e672c0bd83edb2049f94545bb3fb4ab537b Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 13:52:24 -0500 Subject: [PATCH 591/653] Gateway_73 aggregate/proxy for GE_Fahrstufe --- opendbc/dbc/vw_meb.dbc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 3d8d76f2748..6a752759767 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -1281,7 +1281,10 @@ BO_ 987 Gateway_72: 8 Gateway_MQB SG_ BCM1_Aussen_Temp_ungef : 56|8@1+ (0.5,-50) [-50|76] "Unit_DegreCelsi" Getriebe_DQ_Hybrid_MQB,Getriebe_DQ_MQB,Motor_Diesel_MQB,Motor_Hybrid_MQB,Motor_Otto_MQB BO_ 988 Gateway_73: 8 XXX + SG_ UNKNOWN_1 : 15|2@0+ (1,0) [0|3] "" XXX + SG_ GE_Fahrstufe : 40|4@1+ (1,0) [0|15] "" XXX SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX + SG_ UNKNOWN_2 : 58|3@0+ (1,0) [0|7] "" XXX BO_ 997 TSG_FT_02: 8 Gateway SG_ TSG_FT_02_CRC : 0|8@1+ (1,0) [0|255] "" Vector__XXX @@ -2828,6 +2831,7 @@ VAL_ 982 LH_Bremsl_mi_def 0 "OK" 1 "defekt"; VAL_ 982 LH_Bremsl_li_ges_def 0 "OK" 1 "Alle Bremslichter hinten links defekt"; VAL_ 982 LH_Bremsl_re_ges_def 0 "OK" 1 "Alle Bremslichter hinten rechts defekt"; VAL_ 988 EPB_Status 0 "offen" 1 "geschlossen_Parken" 2 "teilgespannt_Halten" 3 "im_Lauf_oeffnen" 4 "im_Lauf_schliessen" 5 "tbd" 6 "Init" 7 "unbekannt"; +VAL_ 988 GE_Fahrstufe 0 "Zwischenstellung" 1 "Init" 5 "P" 6 "R" 7 "N" 8 "D" 9 "D" 10 "E" 13 "T" 14 "T" 15 "Fehler"; VAL_ 997 FT_Tuer_Status 0 "Init" 1 "Tuer_geschlossen" 2 "Tuer_offen" 3 "Fehler"; VAL_ 997 FT_Tuer_Status_QBit 0 "Status_Tuerkontakt_sicher" 1 "Status_Tuerkontakt_unsicher"; VAL_ 997 FT_Lock_Taster_02 0 "nicht_betaetigt" 1 "betaetigt"; From c74cb3b422603b817a80ffc85bc32be21f445ac2 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 13:59:49 -0500 Subject: [PATCH 592/653] test using gateway aggregate for MEB gearshift position --- opendbc/car/volkswagen/carstate.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index fe1d8ce1773..9681a5d7775 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -53,7 +53,11 @@ def update(self, can_parsers) -> structs.CarState: ret = structs.CarState() - if self.CP.transmissionType == TransmissionType.automatic: + # TODO: Cleanup and consolidate + if self.CP.flags & VolkswagenFlags.MEB: + # TODO: Temp test/hack, but consider migrating everything to Gateway_73, especially if it works for e-Golf and manual trans + ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Gateway_73"]["GE_Fahrstufe"], None)) + elif self.CP.transmissionType == TransmissionType.automatic: ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) elif self.CP.transmissionType == TransmissionType.direct: ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Motor_EV_01"]["MO_Waehlpos"], None)) @@ -419,7 +423,6 @@ def get_can_parsers_meb(CP): ("Motor_16", 2), # From J623 Engine control module ("Blinkmodi_02", 1), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors - ("Getriebe_11", 100), # From J743 Auto transmission control module ("ZV_02", 5), # From ZV ("QFK_01", 100), # From Steering ("ESP_21", 50), # From 119bfd9bbd8d444fd7b90534961d63478c0a810d Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 14:37:44 -0500 Subject: [PATCH 593/653] temp disable door-open checks --- opendbc/car/volkswagen/carstate.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 9681a5d7775..bd541e6e9fc 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -89,11 +89,12 @@ def update(self, can_parsers) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed - ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], - pt_cp.vl["ZV_02"]["ZV_BT_offen"], - pt_cp.vl["ZV_02"]["ZV_HFS_offen"], - pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], - pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) + # TODO: Not available on MQBevo, see if Gateway_73 works (it's not populated on MEB) or see if TSG_FT_01/TSG_FT_02 will work + # ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], + # pt_cp.vl["ZV_02"]["ZV_BT_offen"], + # pt_cp.vl["ZV_02"]["ZV_HFS_offen"], + # pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], + # pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) if self.CP.enableBsm: ret.leftBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Left"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warn_Left"]) @@ -423,7 +424,7 @@ def get_can_parsers_meb(CP): ("Motor_16", 2), # From J623 Engine control module ("Blinkmodi_02", 1), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors - ("ZV_02", 5), # From ZV + # ("ZV_02", 5), # From ZV ("QFK_01", 100), # From Steering ("ESP_21", 50), # ("ESC_51", 100), # From bfd201299bdf9f6253bd34bac0d37733101adcff Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 15:02:35 -0500 Subject: [PATCH 594/653] migrate more gearshift position handling --- opendbc/car/volkswagen/carstate.py | 14 ++++++-------- opendbc/car/volkswagen/values.py | 4 ++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index bd541e6e9fc..b132a97ca3e 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -53,20 +53,18 @@ def update(self, can_parsers) -> structs.CarState: ret = structs.CarState() - # TODO: Cleanup and consolidate - if self.CP.flags & VolkswagenFlags.MEB: - # TODO: Temp test/hack, but consider migrating everything to Gateway_73, especially if it works for e-Golf and manual trans - ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Gateway_73"]["GE_Fahrstufe"], None)) - elif self.CP.transmissionType == TransmissionType.automatic: - ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Getriebe_11"]["GE_Fahrstufe"], None)) - elif self.CP.transmissionType == TransmissionType.direct: + if self.CP.transmissionType == TransmissionType.direct: + # TODO: See if e-Golf can use Gateway_73.GE_Fahrstufe, might be able to eliminate this ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Motor_EV_01"]["MO_Waehlpos"], None)) elif self.CP.transmissionType == TransmissionType.manual: + # TODO: see what Gateway_73.GE_Fahrstufe does for manual trans cars, low chance but we might be able to eliminate this ret.clutchPressed = not pt_cp.vl["Motor_14"]["MO_Kuppl_schalter"] if bool(pt_cp.vl["Gateway_72"]["BCM1_Rueckfahrlicht_Schalter"]): ret.gearShifter = GearShifter.reverse else: ret.gearShifter = GearShifter.drive + else: + ret.gearShifter = self.parse_gear_shifter(self.CCP.shifter_values.get(pt_cp.vl["Gateway_73"]["GE_Fahrstufe"], None)) if self.CP.flags & VolkswagenFlags.MEB: # MEB-specific @@ -333,7 +331,7 @@ def get_can_parsers(CP): ] if CP.transmissionType == TransmissionType.automatic: - pt_messages.append(("Getriebe_11", 20)) # From J743 Auto transmission control module + pt_messages.append(("Gateway_73", 20)) # From J533 CAN gateway elif CP.transmissionType == TransmissionType.direct: pt_messages.append(("Motor_EV_01", 10)) # From J??? unknown EV control module diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 0a4045ff4c7..07aae4a3a7c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -85,7 +85,7 @@ def __init__(self, CP): self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.002, 0.00035]) # curvature safety limit down self.CURVATURE_POWER_FACTOR = 4000 - self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] + self.shifter_values = can_define.dv["Gateway_73"]["GE_Fahrstufe"] self.hca_status_values = can_define.dv["QFK_01"]["LatCon_HCA_Status"] self.BUTTONS = [ @@ -117,7 +117,7 @@ def __init__(self, CP): self.STEER_DELTA_DOWN = 10 # Min HCA reached in 0.60s (STEER_MAX / (50Hz * 0.60)) if CP.transmissionType == TransmissionType.automatic: - self.shifter_values = can_define.dv["Getriebe_11"]["GE_Fahrstufe"] + self.shifter_values = can_define.dv["Gateway_73"]["GE_Fahrstufe"] elif CP.transmissionType == TransmissionType.direct: self.shifter_values = can_define.dv["Motor_EV_01"]["MO_Waehlpos"] self.hca_status_values = can_define.dv["LH_EPS_03"]["EPS_HCA_Status"] From 26c666e7205e6762d46d9da17e7310a2b474eeb1 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 24 Feb 2025 16:05:08 -0500 Subject: [PATCH 595/653] add MQB gateway aggregates for EPB and gearshift --- opendbc/dbc/vw_mqb_2010.dbc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/opendbc/dbc/vw_mqb_2010.dbc b/opendbc/dbc/vw_mqb_2010.dbc index cb6ea038897..15cfe9a1e0a 100644 --- a/opendbc/dbc/vw_mqb_2010.dbc +++ b/opendbc/dbc/vw_mqb_2010.dbc @@ -1491,6 +1491,10 @@ BO_ 1123 PSD_05: 8 XXX BO_ 1124 PSD_06: 8 XXX BO_ 988 Gateway_73: 8 XXX + SG_ UNKNOWN_1 : 15|2@0+ (1,0) [0|3] "" XXX + SG_ GE_Fahrstufe : 40|4@1+ (1,0) [0|15] "" XXX + SG_ EPB_Status : 53|3@1+ (1,0) [0|7] "" XXX + SG_ UNKNOWN_2 : 58|3@0+ (1,0) [0|7] "" XXX BO_ 792 Kamera_Status: 8 XXX From 80c0fe0ebdf1fcd3d667647ab00c7dc89443849e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 00:50:12 -0500 Subject: [PATCH 596/653] HCA_03 fixes --- opendbc/dbc/vw_meb.dbc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/opendbc/dbc/vw_meb.dbc b/opendbc/dbc/vw_meb.dbc index 6a752759767..98125aaa691 100644 --- a/opendbc/dbc/vw_meb.dbc +++ b/opendbc/dbc/vw_meb.dbc @@ -651,16 +651,13 @@ BO_ 768 MEB_ACC_01: 48 XXX SG_ Zeitluecke_5 : 374|9@1+ (0.171,0) [0|100] "Unit_Meter" XXX BO_ 771 HCA_03: 24 XXX - SG_ Standby : 13|1@1+ (1,0) [0|1] "" XXX - SG_ Request : 14|1@1+ (1,0) [0|1] "" XXX - SG_ Unknown_02 : 15|1@1+ (1,0) [0|1] "" XXX - SG_ Power : 16|7@1+ (1,0) [0|125] "" XXX - SG_ Power_Boost : 23|1@1+ (1,0) [0|1] "" XXX + SG_ RequestStatus : 12|4@1+ (1,0) [0|15] "" XXX + SG_ Power : 16|8@1+ (0.4,0) [0.0|100.0] "percent" XXX SG_ Curvature : 24|15@1+ (6.7e-06,0) [0|0.219] "Unit_rad/m" XXX - SG_ VZ : 39|1@1+ (1,0) [0|1] "" XXX + SG_ Curvature_VZ : 39|1@1+ (1,0) [0|1] "" XXX SG_ Unknown_01 : 53|1@0+ (1,0) [0|1] "" XXX SG_ Vibration : 56|1@0+ (1,0) [0|1] "" XXX - SG_ Active : 66|1@1+ (1,0) [0|1] "" XXX + SG_ HighSendRate : 66|1@1+ (1,0) [0|1] "" XXX BO_ 792 MEB_Camera_03: 8 XXX From 8f86df41100fe4282fa46064ef802e3207828ecf Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 01:10:47 -0500 Subject: [PATCH 597/653] packer fixes corresponding to DBC fixes --- opendbc/car/volkswagen/mebcan.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index 0fedc8e8327..b7298ea1717 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -24,16 +24,13 @@ ACC_HUD_DISABLED = 0 -def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power, power_boost): - # active lateral control deactivates active steering wheel centering +def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): values = { "Curvature": abs(apply_curvature), # in rad/m - "VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, - "Power": power if lkas_enabled else 0, # maximum working value is 127, but observed max value with VW travel assist is 125 - "Power_Boost": 1 if power_boost and lkas_enabled else 0, # this bit has not been observed with VW travel assist yet, keep it separated from POWER for now - "Active": lkas_enabled, - "Request": lkas_enabled, - "Standby": not lkas_enabled, + "Curvature_VZ": 1 if apply_curvature > 0 and lkas_enabled else 0, + "Power": power if lkas_enabled else 0, + "RequestStatus": 4 if lkas_enabled else 2, + "HighSendRate": lkas_enabled, } return packer.make_can_msg("HCA_03", bus, values) From 5d6098654da6cbe3128e15bd0233674de6c0f2c7 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 01:11:07 -0500 Subject: [PATCH 598/653] definitely legitimate safety --- opendbc/car/volkswagen/carcontroller.py | 53 +++++++++++++++++++------ 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 43462a0ff2e..70029d29e2d 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -11,6 +11,40 @@ LongCtrlState = structs.CarControl.Actuators.LongControlState +def apply_iso_curvature_limits(v_ego, previous_curvature, time_step, desired_curvature): + """ + Apply ISO 11270:2014(E) safety constraints to limit the desired curvature. + + Args: + v_ego: Vehicle v_ego in meters per second (m/s) + previous_curvature: Previous path curvature in 1/meters + time_step: Time step in seconds + desired_curvature: Newly desired path curvature in 1/meters + + Returns: + float: Limited curvature that respects acceleration and jerk constraints + """ + # ISO 11270:2014 safety constraints + MAX_LATERAL_ACCELERATION = 3.0 # m/s^2 + MAX_LATERAL_JERK = 5.0 # m/s^3 + JERK_TIME_HORIZON = 0.5 # seconds + + if v_ego <= 0.1: + return 0.0 + + # Calculate maximum change in curvature over the 0.5s time horizon, scale the max change to our current time step + max_curvature_acc = MAX_LATERAL_ACCELERATION / (v_ego**2) + max_delta_curvature = (MAX_LATERAL_JERK * JERK_TIME_HORIZON) / (v_ego**2) * (time_step / JERK_TIME_HORIZON) + + min_curvature_jerk = previous_curvature - max_delta_curvature + max_curvature_jerk = previous_curvature + max_delta_curvature + + max_curvature = min(max_curvature_acc, max_curvature_jerk) + min_curvature = max(-max_curvature_acc, min_curvature_jerk) + + return max(min(desired_curvature, max_curvature), min_curvature) + + class CarController(CarControllerBase): def __init__(self, dbc_names, CP): super().__init__(dbc_names, CP) @@ -50,29 +84,24 @@ def update(self, CC, CS, now_nanos): # MEB rack can be used continously without time limits # maximum real steering angle change ~ 120-130 deg/s + # Adjust our curvature command by the offset between openpilot's current curvature and the QFK's current curvature + calibrated_actuator_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) + apply_curvature = apply_iso_curvature_limits(CS.out.vEgo, self.apply_curvature_last, DT_CTRL * self.CCP.STEER_STEP, calibrated_actuator_curvature) + if CC.latActive: hca_enabled = True - # Adjust our curvature command by the offset between openpilot's current curvature and the QFK's current curvature - actuator_curvature_with_offset = actuators.curvature + (CS.curvature - CC.currentCurvature) - apply_curvature = apply_std_steer_angle_limits(actuator_curvature_with_offset, self.apply_curvature_last, CS.out.vEgoRaw, self.CCP) - apply_curvature = np.clip(apply_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) - - # FIXME: implement power control, backoff on driver input torque - steering_power = 125 - + # FIXME: need power control scaling on driver override + steering_power = 100 else: - # TODO: see if we can do without this extra ramp-down-on-disengage logic, it makes safety more complex and MQBevo didn't need it if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero hca_enabled = True - current_curvature = CS.curvature #-CS.out.yawRate / max(CS.out.vEgoRaw, 0.1) - apply_curvature = np.clip(current_curvature, -self.CCP.CURVATURE_MAX, self.CCP.CURVATURE_MAX) # synchronize with current curvature steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, 0) else: hca_enabled = False apply_curvature = 0. # inactive curvature steering_power = 0 - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power, False)) + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power)) self.apply_curvature_last = apply_curvature self.steering_power_last = steering_power From 6a1e19a234c70eecaa5ddf8c4a5146e8ed007bbb Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 01:11:34 -0500 Subject: [PATCH 599/653] lint --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 70029d29e2d..92b8650ee61 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -1,6 +1,6 @@ import numpy as np from opendbc.can.packer import CANPacker -from opendbc.car import Bus, DT_CTRL, apply_driver_steer_torque_limits, apply_std_steer_angle_limits, structs +from opendbc.car import Bus, DT_CTRL, apply_driver_steer_torque_limits, structs from opendbc.car.common.conversions import Conversions as CV from opendbc.car.interfaces import CarControllerBase from opendbc.car.volkswagen import mqbcan, pqcan, mebcan From 2b3e634d642e79e74091449345778bf710a12275 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 02:38:55 -0500 Subject: [PATCH 600/653] clipping to zero is wrong here --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 92b8650ee61..2051cbe50ed 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -30,7 +30,7 @@ def apply_iso_curvature_limits(v_ego, previous_curvature, time_step, desired_cur JERK_TIME_HORIZON = 0.5 # seconds if v_ego <= 0.1: - return 0.0 + return desired_curvature # Calculate maximum change in curvature over the 0.5s time horizon, scale the max change to our current time step max_curvature_acc = MAX_LATERAL_ACCELERATION / (v_ego**2) From b7ec06c9b84a6bb68937877c8752cb350ae0434f Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 03:22:02 -0500 Subject: [PATCH 601/653] extremely legitimate power safety --- opendbc/car/volkswagen/carcontroller.py | 50 ++++++++++++------------- opendbc/car/volkswagen/values.py | 15 +++----- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 2051cbe50ed..610a64a7285 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -7,23 +7,12 @@ from opendbc.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags #from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import get_T_FOLLOW + VisualAlert = structs.CarControl.HUDControl.VisualAlert LongCtrlState = structs.CarControl.Actuators.LongControlState def apply_iso_curvature_limits(v_ego, previous_curvature, time_step, desired_curvature): - """ - Apply ISO 11270:2014(E) safety constraints to limit the desired curvature. - - Args: - v_ego: Vehicle v_ego in meters per second (m/s) - previous_curvature: Previous path curvature in 1/meters - time_step: Time step in seconds - desired_curvature: Newly desired path curvature in 1/meters - - Returns: - float: Limited curvature that respects acceleration and jerk constraints - """ # ISO 11270:2014 safety constraints MAX_LATERAL_ACCELERATION = 3.0 # m/s^2 MAX_LATERAL_JERK = 5.0 # m/s^3 @@ -45,6 +34,23 @@ def apply_iso_curvature_limits(v_ego, previous_curvature, time_step, desired_cur return max(min(desired_curvature, max_curvature), min_curvature) +def apply_lateral_control_power(CCP, lat_active, driver_input, previous_power): + qfk_enable = True + + if lat_active: + if driver_input: + apply_power = max(previous_power - CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MIN) + else: + apply_power = min(previous_power + CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MAX) + elif previous_power > 0: + apply_power = max(previous_power - CCP.STEERING_POWER_STEP, 0) + else: + qfk_enable = False + apply_power = 0 + + return qfk_enable, apply_power + + class CarController(CarControllerBase): def __init__(self, dbc_names, CP): super().__init__(dbc_names, CP) @@ -60,6 +66,7 @@ def __init__(self, dbc_names, CP): self.aeb_available = not CP.flags & VolkswagenFlags.PQ self.apply_steer_last = 0 + self.apply_steer_power_last = 0 self.apply_curvature_last = 0 self.steering_power_last = 0 self.accel_last = 0 @@ -84,26 +91,15 @@ def update(self, CC, CS, now_nanos): # MEB rack can be used continously without time limits # maximum real steering angle change ~ 120-130 deg/s - # Adjust our curvature command by the offset between openpilot's current curvature and the QFK's current curvature + # Calibrate our curvature command by the offset between openpilot's current curvature and the QFK's current curvature calibrated_actuator_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) apply_curvature = apply_iso_curvature_limits(CS.out.vEgo, self.apply_curvature_last, DT_CTRL * self.CCP.STEER_STEP, calibrated_actuator_curvature) + qfk_enable, apply_steer_power = apply_lateral_control_power(self.CCP, CC.latActive, CS.out.steeringPressed, self.apply_steer_power_last) - if CC.latActive: - hca_enabled = True - # FIXME: need power control scaling on driver override - steering_power = 100 - else: - if self.steering_power_last > 0: # keep HCA alive until steering power has reduced to zero - hca_enabled = True - steering_power = max(self.steering_power_last - self.CCP.STEERING_POWER_STEPS, 0) - else: - hca_enabled = False - apply_curvature = 0. # inactive curvature - steering_power = 0 + can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, hca_enabled, steering_power)) self.apply_curvature_last = apply_curvature - self.steering_power_last = steering_power + self.apply_steer_power_last = apply_steer_power else: # Logic to avoid HCA state 4 "refused": diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 07aae4a3a7c..9403cf44343 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field from enum import Enum, IntFlag, StrEnum -from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, AngleRateLimit, uds +from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, uds from opendbc.can.can_define import CANDefine from opendbc.car.common.conversions import Conversions as CV from opendbc.car import structs @@ -75,15 +75,10 @@ def __init__(self, CP): elif CP.flags & VolkswagenFlags.MEB: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz - self.STEER_DRIVER_ALLOWANCE = 80 # Driver intervention threshold 0.6 Nm - self.STEERING_POWER_USER_REDUCTION = 40 # HCA_03 driver intervention power reduction in percent - self.STEERING_POWER_MAX = 125 # HCA_03 maximum steering power - self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power - self.STEERING_POWER_STEPS = 6 # HCA_03 steering power counter steps - self.CURVATURE_MAX = 0.195 # HCA_03 maximum curvature in 1/m - self.ANGLE_RATE_LIMIT_UP = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.0015, 0.00015]) # curvature safety limit up - self.ANGLE_RATE_LIMIT_DOWN = AngleRateLimit(speed_bp=[5., 25.], angle_v=[0.002, 0.00035]) # curvature safety limit down - self.CURVATURE_POWER_FACTOR = 4000 + self.STEER_DRIVER_ALLOWANCE = 60 # Driver intervention threshold 0.6 Nm + self.STEERING_POWER_MAX = 100 # HCA_03 maximum steering power + self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power, used for driver intervention + self.STEERING_POWER_STEP = 3 # HCA_03 steering power counter steps self.shifter_values = can_define.dv["Gateway_73"]["GE_Fahrstufe"] self.hca_status_values = can_define.dv["QFK_01"]["LatCon_HCA_Status"] From f0643090dbfb1b21b905ed56f268d3e665f6cf84 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:19:08 -0500 Subject: [PATCH 602/653] re-enable ZV_02 door open detection for MEB --- opendbc/car/volkswagen/carstate.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index cbef34b1ccf..07d51c19d1e 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -85,12 +85,11 @@ def update(self, can_parsers) -> structs.CarState: ret.brakePressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) # includes regen braking by user ret.parkingBrake = pt_cp.vl["Gateway_73"]["EPB_Status"] in (1, 4) # EPB closing or closed - # TODO: Not available on MQBevo, see if Gateway_73 works (it's not populated on MEB) or see if TSG_FT_01/TSG_FT_02 will work - # ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], - # pt_cp.vl["ZV_02"]["ZV_BT_offen"], - # pt_cp.vl["ZV_02"]["ZV_HFS_offen"], - # pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], - # pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) + ret.doorOpen = any([pt_cp.vl["ZV_02"]["ZV_FT_offen"], + pt_cp.vl["ZV_02"]["ZV_BT_offen"], + pt_cp.vl["ZV_02"]["ZV_HFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HBFS_offen"], + pt_cp.vl["ZV_02"]["ZV_HD_offen"]]) if self.CP.enableBsm: ret.leftBlindspot = bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Info_Left"]) or bool(ext_cp.vl["MEB_Side_Assist_01"]["Blind_Spot_Warn_Left"]) @@ -419,7 +418,7 @@ def get_can_parsers_meb(CP): ("Motor_16", 2), # From J623 Engine control module ("Blinkmodi_02", 1), # From J519 BCM (sent at 1Hz when no lights active, 50Hz when active) ("LH_EPS_03", 100), # From J500 Steering Assist with integrated sensors - # ("ZV_02", 5), # From ZV + ("ZV_02", 5), # From ZV ("QFK_01", 100), # From Steering ("ESP_21", 50), # ("ESC_51", 100), # From 837285933bad140aa93e81ad832ffbec6bfcbc10 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:21:14 -0500 Subject: [PATCH 603/653] cleanup --- opendbc/car/volkswagen/carcontroller.py | 3 +-- opendbc/car/volkswagen/carstate.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 610a64a7285..8eb30f51a22 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -199,11 +199,10 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.LDW_STEP == 0: hud_alert = 0 - if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control)) + CS.out.steeringPressed, hud_alert, hud_control)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: if self.CP.flags & VolkswagenFlags.MEB: diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 07d51c19d1e..23302f2495a 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -482,7 +482,6 @@ class MebExtraSignals: ("MEB_ACC_01", 17), # ("ACC_18", 50), # ("AWV_03", 1), # Front Collision Detection (1 Hz when inactive, 50 Hz when active) - #("MEB_Distance_01", 25), # ] bsm_radar_messages = [ ("MEB_Side_Assist_01", 20), From f4eb0f40c0bbc009c466c39e1b4d86d54c01b0d6 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:28:20 -0500 Subject: [PATCH 604/653] set aside alpha long for initial merge --- opendbc/car/volkswagen/carcontroller.py | 61 ++------ opendbc/car/volkswagen/interface.py | 5 +- opendbc/car/volkswagen/mebcan.py | 167 ---------------------- opendbc/car/volkswagen/radar_interface.py | 94 +----------- 4 files changed, 15 insertions(+), 312 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 8eb30f51a22..7b51f5de7bb 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -158,36 +158,12 @@ def update(self, CC, CS, now_nanos): stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) - if self.CP.flags & VolkswagenFlags.MEB: - # Logic to prevent car error with EPB: - # * send a few frames of HMS RAMP RELEASE command at the very begin of long overrideand and at the end of active long control - accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.enabled else 0 - self.accel_last = accel - - # 1 frame of long_override_begin is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly - long_override = CC.cruiseControl.override or CS.out.gasPressed - self.long_override_counter = min(self.long_override_counter + 1, 5) if long_override else 0 - long_override_begin = long_override and self.long_override_counter < 5 - - # 1 frame of long_disabling is enough, but lower the possibility of panda safety blocking it for now until we adapt panda safety correctly - self.long_disabled_counter = min(self.long_disabled_counter + 1, 5) if not CC.enabled else 0 - long_disabling = not CC.enabled and self.long_disabled_counter < 5 - - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, long_override) - acc_hold_type = self.CCS.acc_hold_type(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, starting, stopping, - CS.esp_hold_confirmation, long_override, long_override_begin, long_disabling) - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.enabled, - accel, acc_control, acc_hold_type, stopping, starting, CS.esp_hold_confirmation, - long_override, CS.travel_assist_available)) + accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 + self.accel_last = accel - else: - accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 - self.accel_last = accel - - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, - acc_control, stopping, starting, CS.esp_hold_confirmation)) + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, + acc_control, stopping, starting, CS.esp_hold_confirmation)) #if self.aeb_available: # if self.frame % self.CCP.AEB_CONTROL_STEP == 0: @@ -205,25 +181,14 @@ def update(self, CC, CS, now_nanos): CS.out.steeringPressed, hud_alert, hud_control)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: - if self.CP.flags & VolkswagenFlags.MEB: - desired_gap = max(1, CS.out.vEgo * 1.5) # TODO gap from OP, get_T_FOLLOW(hud_control.leadDistanceBars)) - distance = 30 if hud_control.leadVisible else 0 # TODO lead distance from model - - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.enabled, - CS.esp_hold_confirmation, CC.cruiseControl.override or CS.out.gasPressed) - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, hud_control.setSpeed * CV.MS_TO_KPH, - hud_control.leadVisible, hud_control.leadDistanceBars, CS.esp_hold_confirmation, - distance, desired_gap)) - - else: - lead_distance = 0 - if hud_control.leadVisible and self.frame * DT_CTRL > 1.0: # Don't display lead until we know the scaling factor - lead_distance = 512 if CS.upscale_lead_car_signal else 8 - acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) - # FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem? - set_speed = hud_control.setSpeed * CV.MS_TO_KPH - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, set_speed, - lead_distance, hud_control.leadDistanceBars)) + lead_distance = 0 + if hud_control.leadVisible and self.frame * DT_CTRL > 1.0: # Don't display lead until we know the scaling factor + lead_distance = 512 if CS.upscale_lead_car_signal else 8 + acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) + # FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem? + set_speed = hud_control.setSpeed * CV.MS_TO_KPH + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, set_speed, + lead_distance, hud_control.leadDistanceBars)) # **** Stock ACC Button Controls **************************************** # diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 9cfe719431f..83dca7a7550 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -83,10 +83,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp # Global longitudinal tuning defaults, can be overridden per-vehicle - if ret.flags & VolkswagenFlags.MEB: - ret.longitudinalActuatorDelay = 0.2 - - ret.experimentalLongitudinalAvailable = ret.networkLocation == NetworkLocation.gateway or docs + ret.experimentalLongitudinalAvailable = not ret.flags & VolkswagenFlags.MEB and (ret.networkLocation == NetworkLocation.gateway or docs) if experimental_long: # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. ret.openpilotLongitudinalControl = True diff --git a/opendbc/car/volkswagen/mebcan.py b/opendbc/car/volkswagen/mebcan.py index b7298ea1717..27ee03cc6c3 100644 --- a/opendbc/car/volkswagen/mebcan.py +++ b/opendbc/car/volkswagen/mebcan.py @@ -6,24 +6,6 @@ create_acc_buttons_control = mqbcan.create_acc_buttons_control -ACC_CTRL_ERROR = 6 -ACC_CTRL_OVERRIDE = 4 -ACC_CTRL_ACTIVE = 3 -ACC_CTRL_ENABLED = 2 -ACC_CTRL_DISABLED = 0 - -ACC_HMS_RAMP_RELEASE = 5 -ACC_HMS_RELEASE = 4 -ACC_HMS_HOLD = 1 -ACC_HMS_NO_REQUEST = 0 - -ACC_HUD_ERROR = 6 -ACC_HUD_OVERRIDE = 4 -ACC_HUD_ACTIVE = 3 -ACC_HUD_ENABLED = 2 -ACC_HUD_DISABLED = 0 - - def create_steering_control(packer, bus, apply_curvature, lkas_enabled, power): values = { "Curvature": abs(apply_curvature), # in rad/m @@ -50,152 +32,3 @@ def create_ea_hud(packer, bus): } return packer.make_can_msg("EA_02", bus, values) - - -def acc_control_value(main_switch_on, acc_faulted, long_active, esp_hold, override): - - if acc_faulted: - acc_control = ACC_CTRL_ERROR # error state - elif long_active: - if override: - acc_control = ACC_CTRL_OVERRIDE # overriding - else: - acc_control = ACC_CTRL_ACTIVE # active long control state - elif main_switch_on: - acc_control = ACC_CTRL_ENABLED # long control ready - else: - acc_control = ACC_CTRL_DISABLED # long control deactivated state - - return acc_control - - -def acc_hold_type(main_switch_on, acc_faulted, long_active, starting, stopping, esp_hold, override, override_begin, long_disabling): - # warning: car is reacting to hold mechanic even with long control off - - if acc_faulted: - acc_hold_type = ACC_HMS_NO_REQUEST # no hold request - elif not long_active: - if long_disabling: - acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests right after disabling long control (prevents car error with EPB at low speed) - else: - acc_hold_type = ACC_HMS_NO_REQUEST # no hold request - elif override: - if override_begin: - acc_hold_type = ACC_HMS_RAMP_RELEASE # ramp release of requests at the beginning of override (prevents car error with EPB at low speed) - else: - acc_hold_type = ACC_HMS_NO_REQUEST # overriding / no request - elif starting: - acc_hold_type = ACC_HMS_RELEASE # release request and startup - elif stopping or esp_hold: - acc_hold_type = ACC_HMS_HOLD # hold or hold request - else: - acc_hold_type = ACC_HMS_NO_REQUEST # no hold request - - return acc_hold_type - - -def create_acc_accel_control(packer, bus, acc_type, acc_enabled, accel, acc_control, acc_hold_type, stopping, starting, - esp_hold, override, travel_assist_available): - # active longitudinal control disables one pedal driving (regen mode) while using overriding mechnism - commands = [] - - if acc_enabled: - if override: # the car expects a non inactive accel while overriding - acceleration = 0.00 # original ACC still sends active accel in this case (seamless experience) - else: - acceleration = accel - else: - acceleration = 3.01 # inactive accel - - values = { - "ACC_Typ": acc_type, - "ACC_Status_ACC": acc_control, - "ACC_StartStopp_Info": acc_enabled, - "ACC_Sollbeschleunigung_02": acceleration, - "ACC_zul_Regelabw_unten": 0.2 if acc_control == ACC_CTRL_ACTIVE else 0, - "ACC_zul_Regelabw_oben": 0.2 if acc_control == ACC_CTRL_ACTIVE else 0, - "ACC_neg_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits - "ACC_pos_Sollbeschl_Grad_02": 4.0 if acc_control == ACC_CTRL_ACTIVE else 0, # TODO: dynamic adjustment of jerk limits - "ACC_Anfahren": starting, - "ACC_Anhalten": stopping, - "ACC_Anhalteweg": 20.46, - "ACC_Anforderung_HMS": acc_hold_type, - "ACC_AKTIV_regelt": 1 if acc_control == ACC_CTRL_ACTIVE else 0, - "SET_ME_0XFE": 0xFE, - "SET_ME_0X1": 0x1, - "SET_ME_0X9": 0x9, - } - - commands.append(packer.make_can_msg("ACC_18", bus, values)) - - if travel_assist_available: - # satisfy car to prevent errors when pressing Travel Assist Button - values_ta = { - "Travel_Assist_Status": 4 if acc_enabled else 2, - "Travel_Assist_Request": 0, - "Travel_Assist_Available": 1, - } - - commands.append(packer.make_can_msg("TA_01", bus, values_ta)) - - return commands - - -def acc_hud_status_value(main_switch_on, acc_faulted, long_active, esp_hold, override): - - if acc_faulted: - acc_hud_control = ACC_HUD_ERROR # error state - elif long_active: - if override: - acc_hud_control = ACC_HUD_OVERRIDE # overriding - else: - acc_hud_control = ACC_HUD_ACTIVE # active - elif main_switch_on: - acc_hud_control = ACC_HUD_ENABLED # inactive - else: - acc_hud_control = ACC_HUD_DISABLED # deactivated - - return acc_hud_control - - -def get_desired_gap(distance_bars, desired_gap, current_gap_signal): - # mapping desired gap to correct signal of corresponding distance bar - gap = 0 - - if distance_bars == current_gap_signal: - gap = desired_gap - - return gap - - -def create_acc_hud_control(packer, bus, acc_control, set_speed, lead_visible, distance_bars, esp_hold, distance, desired_gap): - - values = { - "ACC_Status_ACC": acc_control, - "ACC_Wunschgeschw_02": set_speed if set_speed < 250 else 327.36, - "ACC_Gesetzte_Zeitluecke": distance_bars, # 5 distance bars available (3 are used by OP) - "ACC_Display_Prio": 1, - "ACC_Abstandsindex_02": 569, - "ACC_EGO_Fahrzeug": 1 if acc_control == ACC_HUD_ACTIVE else 0, - "Lead_Type_Detected": 1 if lead_visible else 0, # object should be displayed - "Lead_Type": 3 if lead_visible else 0, # displaying a car - "Lead_Distance": distance if lead_visible else 0, # hud distance of object - "ACC_Enabled": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, - "ACC_Standby_Override": 1 if acc_control != ACC_HUD_ACTIVE else 0, - "Street_Color": 1 if acc_control in (ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # light grey (1) or dark (0) street - "Lead_Brightness": 3 if acc_control == ACC_HUD_ACTIVE else 0, # object shows in colour - "ACC_Events": 3 if esp_hold and acc_control == ACC_HUD_ACTIVE else 0, # acc ready message at standstill - "Zeitluecke_1": get_desired_gap(distance_bars, desired_gap, 1), # desired distance to lead object for distance bar 1 - "Zeitluecke_2": get_desired_gap(distance_bars, desired_gap, 2), # desired distance to lead object for distance bar 2 - "Zeitluecke_3": get_desired_gap(distance_bars, desired_gap, 3), # desired distance to lead object for distance bar 3 - "Zeitluecke_4": get_desired_gap(distance_bars, desired_gap, 4), # desired distance to lead object for distance bar 4 - "Zeitluecke_5": get_desired_gap(distance_bars, desired_gap, 5), # desired distance to lead object for distance bar 5 - "Zeitluecke_Farbe": 1 if acc_control in (ACC_HUD_ENABLED, ACC_HUD_ACTIVE, ACC_HUD_OVERRIDE) else 0, # yellow (1) or white (0) time gap - "SET_ME_0X1": 0x1, # unknown - "SET_ME_0X6A": 0x6A, # unknown - "SET_ME_0X3FF": 0x3FF, # unknown - "SET_ME_0XFFFF": 0xFFFF, # unknown - "SET_ME_0X7FFF": 0x7FFF, # unknown - } - - return packer.make_can_msg("MEB_ACC_01", bus, values) diff --git a/opendbc/car/volkswagen/radar_interface.py b/opendbc/car/volkswagen/radar_interface.py index 77122817f33..6e552bf618f 100644 --- a/opendbc/car/volkswagen/radar_interface.py +++ b/opendbc/car/volkswagen/radar_interface.py @@ -1,96 +1,4 @@ -from opendbc.can.parser import CANParser -from opendbc.car import Bus, structs from opendbc.car.interfaces import RadarInterfaceBase -from opendbc.car.volkswagen.values import DBC, VolkswagenFlags - -RADAR_ADDR = 0x24F -NO_OBJECT = 0 -LANE_TYPES = ['Same_Lane', 'Left_Lane', 'Right_Lane'] - - -def get_radar_can_parser(CP): - if CP.flags & VolkswagenFlags.MEB: - messages = [("MEB_Distance_01", 25)] - else: - return None - - return CANParser(DBC[CP.carFingerprint][Bus.radar], messages, 2) - class RadarInterface(RadarInterfaceBase): - def __init__(self, CP): - super().__init__(CP) - self.updated_messages = set() - self.trigger_msg = RADAR_ADDR - self.track_id = 0 - - self.radar_off_can = CP.radarUnavailable - self.rcp = get_radar_can_parser(CP) - - def update(self, can_strings): - if self.radar_off_can or (self.rcp is None): - return super().update(None) - - vls = self.rcp.update_strings(can_strings) - self.updated_messages.update(vls) - - if self.trigger_msg not in self.updated_messages: - return None - - rr = self._update(self.updated_messages) - self.updated_messages.clear() - - return rr - - def _update(self, updated_messages): - ret = structs.RadarData() - - if self.rcp is None or not self.rcp.can_valid: - ret.errors = ["canError"] - return ret - - msg = self.rcp.vl["MEB_Distance_01"] - - active_objects = {} - - for lane_type in LANE_TYPES: - for idx in range(1, 3): - signal_part = f'{lane_type}_0{idx}' - long_distance = f'{signal_part}_Long_Distance' - object_id = f'{signal_part}_ObjectID' - lat_distance = f'{signal_part}_Lat_Distance' - rel_velo = f'{signal_part}_Rel_Velo' - - current_object_id = msg[object_id] - - if current_object_id != NO_OBJECT: - if current_object_id not in active_objects: - active_objects[current_object_id] = { - "long_distance": msg[long_distance], - "lat_distance": msg[lat_distance], - "rel_velo": msg[rel_velo] - } - else: - ret.errors = ["canError"] - return ret - - for object_id, data in active_objects.items(): - if object_id not in self.pts: - self.pts[object_id] = structs.RadarData.RadarPoint() - self.pts[object_id].trackId = self.track_id - self.track_id += 1 - - self.pts[object_id].measured = True - self.pts[object_id].dRel = data["long_distance"] - self.pts[object_id].yRel = data["lat_distance"] - self.pts[object_id].vRel = data["rel_velo"] - self.pts[object_id].aRel = float('nan') - self.pts[object_id].yvRel = float('nan') - - tracked_ids = set(self.pts.keys()) - active_ids = set(active_objects.keys()) - for object_id in tracked_ids - active_ids: - self.pts.pop(object_id, None) - - ret.points = list(self.pts.values()) - return ret + pass From 6f8a04f3d345d1525345f0dc692e188e0e668a3b Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:31:33 -0500 Subject: [PATCH 605/653] more --- opendbc/car/volkswagen/carcontroller.py | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 7b51f5de7bb..e5263429718 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -5,7 +5,6 @@ from opendbc.car.interfaces import CarControllerBase from opendbc.car.volkswagen import mqbcan, pqcan, mebcan from opendbc.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags -#from openpilot.selfdrive.controls.lib.longitudinal_mpc_lib.long_mpc import get_T_FOLLOW VisualAlert = structs.CarControl.HUDControl.VisualAlert @@ -69,9 +68,6 @@ def __init__(self, dbc_names, CP): self.apply_steer_power_last = 0 self.apply_curvature_last = 0 self.steering_power_last = 0 - self.accel_last = 0 - self.long_override_counter = 0 - self.long_disabled_counter = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -155,21 +151,19 @@ def update(self, CC, CS, now_nanos): if self.CP.openpilotLongitudinalControl: if self.frame % self.CCP.ACC_CONTROL_STEP == 0: + acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) + accel = float(np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0) stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) - - accel = np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0 - self.accel_last = accel - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) - #if self.aeb_available: - # if self.frame % self.CCP.AEB_CONTROL_STEP == 0: - # can_sends.append(self.CCS.create_aeb_control(self.packer_pt, False, False, 0.0)) - # if self.frame % self.CCP.AEB_HUD_STEP == 0: - # can_sends.append(self.CCS.create_aeb_hud(self.packer_pt, False, False)) + #if self.aeb_available: + # if self.frame % self.CCP.AEB_CONTROL_STEP == 0: + # can_sends.append(self.CCS.create_aeb_control(self.packer_pt, False, False, 0.0)) + # if self.frame % self.CCP.AEB_HUD_STEP == 0: + # can_sends.append(self.CCS.create_aeb_hud(self.packer_pt, False, False)) # **** HUD Controls ***************************************************** # @@ -178,7 +172,7 @@ def update(self, CC, CS, now_nanos): if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, - CS.out.steeringPressed, hud_alert, hud_control)) + CS.out.steeringPressed, hud_alert, hud_control)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: lead_distance = 0 From 279d2d79a1675dc95a2459bdadd682207858402a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:47:16 -0500 Subject: [PATCH 606/653] set aside more alpha long stuff --- opendbc/car/volkswagen/carcontroller.py | 5 +- opendbc/car/volkswagen/values.py | 4 +- opendbc/safety/safety/safety_volkswagen_meb.h | 84 +------------------ opendbc/safety/tests/test_volkswagen_meb.py | 63 -------------- 4 files changed, 6 insertions(+), 150 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index e5263429718..56ee4d0e481 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -6,7 +6,6 @@ from opendbc.car.volkswagen import mqbcan, pqcan, mebcan from opendbc.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags - VisualAlert = structs.CarControl.HUDControl.VisualAlert LongCtrlState = structs.CarControl.Actuators.LongControlState @@ -149,13 +148,12 @@ def update(self, CC, CS, now_nanos): # **** Acceleration Controls ******************************************** # - if self.CP.openpilotLongitudinalControl: + if self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB: if self.frame % self.CCP.ACC_CONTROL_STEP == 0: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) accel = float(np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0) stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) - acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) @@ -195,7 +193,6 @@ def update(self, CC, CS, now_nanos): new_actuators.steer = self.apply_steer_last / self.CCP.STEER_MAX new_actuators.steerOutputCan = self.apply_steer_last new_actuators.curvature = float(self.apply_curvature_last) - new_actuators.accel = float(self.accel_last) self.gra_acc_counter_last = CS.gra_stock_values["COUNTER"] self.frame += 1 diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 9403cf44343..3034a3b0714 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -88,8 +88,7 @@ def __init__(self, CP): Button(structs.CarState.ButtonEvent.Type.resumeCruise, "GRA_ACC_01", "GRA_Tip_Wiederaufnahme", [1]), Button(structs.CarState.ButtonEvent.Type.accelCruise, "GRA_ACC_01", "GRA_Tip_Hoch", [1]), Button(structs.CarState.ButtonEvent.Type.decelCruise, "GRA_ACC_01", "GRA_Tip_Runter", [1]), - #Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Abbrechen", [1]), # there is no physical cancel button - Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Hauptschalter", [1]), # main button cancels ACC operation when ACC active + Button(structs.CarState.ButtonEvent.Type.cancel, "GRA_ACC_01", "GRA_Hauptschalter", [1]), Button(structs.CarState.ButtonEvent.Type.gapAdjustCruise, "GRA_ACC_01", "GRA_Verstellung_Zeitluecke", [3]), ] @@ -196,7 +195,6 @@ class VolkswagenMEBPlatformConfig(PlatformConfig): wmis: set[WMI] = field(default_factory=set) def init(self): - # TODO: add VolkswagenFlags.STOCK_HCA_PRESENT for EA mitigation once we have a torque substitute to send self.flags |= VolkswagenFlags.MEB diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index c5817561201..6ed680b66ad 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -23,22 +23,6 @@ static uint8_t volkswagen_crc8_lut_8h2f[256]; // Static lookup table for CRC8 poly 0x2F, aka 8H2F/AUTOSAR static int volkswagen_steer_power_prev = 0; -static bool vw_meb_get_longitudinal_allowed_override(void) { - return controls_allowed && gas_pressed_prev; -} - -static bool vw_meb_max_limit_check(int val, const int MAX_VAL, const int MIN_VAL) { - return (val > MAX_VAL) || (val < MIN_VAL); -} - -// Safety checks for longitudinal actuation -static bool vw_meb_longitudinal_accel_checks(int desired_accel, const LongitudinalLimits limits, const int override_accel) { - bool accel_valid = get_longitudinal_allowed() && !vw_meb_max_limit_check(desired_accel, limits.max_accel, limits.min_accel); - bool accel_valid_override = vw_meb_get_longitudinal_allowed_override() && desired_accel == override_accel; - bool accel_inactive = desired_accel == limits.inactive_accel; - return !(accel_valid || accel_inactive || accel_valid_override); -} - static uint32_t volkswagen_meb_get_checksum(const CANPacket_t *to_push) { return (uint8_t)GET_BYTE(to_push, 0); } @@ -95,9 +79,6 @@ static safety_config volkswagen_meb_init(uint16_t param) { static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_EA_01, 0, 8}, {MSG_EA_02, 0, 8}, {MSG_GRA_ACC_01, 0, 8}, {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}}; - static const CanMsg VOLKSWAGEN_MEB_LONG_TX_MSGS[] = {{MSG_MEB_ACC_01, 0, 48}, {MSG_ACC_18, 0, 32}, {MSG_HCA_03, 0, 24}, - {MSG_EA_01, 0, 8}, {MSG_EA_02, 0, 8}, {MSG_LDW_02, 0, 8}, {MSG_TA_01, 0, 8}}; - static RxCheck volkswagen_meb_rx_checks[] = { {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, {.msg = {{MSG_MOTOR_14, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, @@ -113,13 +94,9 @@ static safety_config volkswagen_meb_init(uint16_t param) { volkswagen_set_button_prev = false; volkswagen_resume_button_prev = false; - volkswagen_steer_power_prev = 0; - - volkswagen_longitudinal = GET_FLAG(param, FLAG_VOLKSWAGEN_LONG_CONTROL); gen_crc_lookup_table_8(0x2F, volkswagen_crc8_lut_8h2f); - return volkswagen_longitudinal ? BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_LONG_TX_MSGS) : \ - BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); + return BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); } static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { @@ -150,21 +127,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { update_sample(&torque_driver, torque_driver_new); } - // Update vehicle yaw rate for curvature checks - //if (addr == MSG_ESC_50) { - // float volkswagen_yaw_rate = (GET_BYTE(to_push, 5U) | ((GET_BYTE(to_push, 6U) & 0x3F) << 8 )) * 0.01; - - // bool volkswagen_yaw_rate_sign = GET_BIT(to_push, 54U); - // if (volkswagen_yaw_rate_sign) { - // volkswagen_yaw_rate *= -1; - // } - // - // float current_curvature = volkswagen_yaw_rate / MAX(vehicle_speed.values[0] / VEHICLE_SPEED_FACTOR, 0.1); - // // convert current curvature into units on CAN for comparison with desired curvature - // update_sample(&angle_meas, ROUND(current_curvature * VOLKSWAGEN_MEB_STEERING_LIMITS.angle_deg_to_can)); - //} - - if (addr == MSG_QFK_01) { // we do not need conversion deg to can, same scaling as HCA_03 curvature + if (addr == MSG_QFK_01) { int current_curvature = ((GET_BYTE(to_push, 5U) & 0x7F) << 8 | GET_BYTE(to_push, 4U)); bool current_curvature_sign = GET_BIT(to_push, 55U); @@ -179,14 +142,11 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { if (addr == MSG_Motor_51) { // When using stock ACC, enter controls on rising edge of stock ACC engage, exit on disengage // Always exit controls on main switch off - // Signal: TSK_06.TSK_Status int acc_status = ((GET_BYTE(to_push, 11U) >> 0) & 0x07U); bool cruise_engaged = (acc_status == 3) || (acc_status == 4) || (acc_status == 5); acc_main_on = cruise_engaged || (acc_status == 2); - if (!volkswagen_longitudinal) { - pcm_cruise_check(cruise_engaged); - } + pcm_cruise_check(cruise_engaged); if (!acc_main_on) { controls_allowed = false; @@ -195,18 +155,6 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // update cruise buttons if (addr == MSG_GRA_ACC_01) { - // If using openpilot longitudinal, enter controls on falling edge of Set or Resume with main switch on - // Signal: GRA_ACC_01.GRA_Tip_Setzen - // Signal: GRA_ACC_01.GRA_Tip_Wiederaufnahme - if (volkswagen_longitudinal) { - bool set_button = GET_BIT(to_push, 16U); - bool resume_button = GET_BIT(to_push, 19U); - if ((volkswagen_set_button_prev && !set_button) || (volkswagen_resume_button_prev && !resume_button)) { - controls_allowed = acc_main_on; - } - volkswagen_set_button_prev = set_button; - volkswagen_resume_button_prev = resume_button; - } // Always exit controls on rising edge of Cancel // Signal: GRA_ACC_01.GRA_Abbrechen if (GET_BIT(to_push, 13U)) { @@ -230,7 +178,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { - // TODO: Validate + // TODO: This has not really been tested/validated, or synced to the new curvature control in openpilot // lateral limits for curvature const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 @@ -249,13 +197,6 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time .inactive_angle_is_zero = true, }; - // longitudinal limits - // acceleration in m/s2 * 1000 to avoid floating point math - const LongitudinalLimits VOLKSWAGEN_MEB_LONG_LIMITS = { - .max_accel = 2000, - .min_accel = -3500, - .inactive_accel = 3010, // VW sends one increment above the max range when inactive - }; int addr = GET_ADDR(to_send); bool tx = true; @@ -276,7 +217,6 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { if (steer_angle_cmd_checks(desired_curvature_raw, steer_req, VOLKSWAGEN_MEB_STEERING_LIMITS)) { tx = false; - // TODO: verify this is actually necessary, this wasn't a problem on MQBevo // steer power is still allowed to decrease to zero monotonously // while controls are not allowed anymore if (steer_req && steer_power != 0) { @@ -293,19 +233,6 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { volkswagen_steer_power_prev = steer_power; } - // Safety check for MSG_ACC_18 acceleration requests - // To avoid floating point math, scale upward and compare to pre-scaled safety m/s2 boundaries - if (addr == MSG_ACC_18) { - // WARNING: IF WE TAKE THE SIGNAL FROM THE CAR WHILE ACC ACTIVE AND BELOW ABOUT 3km/h, THE CAR ERRORS AND PUTS ITSELF IN PARKING MODE WITH EPB! - // TODO: JY note, this is probably just drivetrain coordinator starting/stopping logic - int desired_accel = ((((GET_BYTE(to_send, 4) & 0x7U) << 8) | GET_BYTE(to_send, 3)) * 5U) - 7220U; - - // TODO: very unclear what this is doing, may not be necessary, try removing - if (vw_meb_longitudinal_accel_checks(desired_accel, VOLKSWAGEN_MEB_LONG_LIMITS, 0)) { - tx = false; - } - } - // FORCE CANCEL: ensuring that only the cancel button press is sent when controls are off. // This avoids unintended engagements while still allowing resume spam if ((addr == MSG_GRA_ACC_01) && !controls_allowed) { @@ -329,9 +256,6 @@ static int volkswagen_meb_fwd_hook(int bus_num, int addr) { if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02) || (addr == MSG_EA_01) || (addr == MSG_EA_02)) { // openpilot takes over LKAS steering control and related HUD messages from the camera bus_fwd = -1; - } else if (volkswagen_longitudinal && ((addr == MSG_MEB_ACC_01) || (addr == MSG_ACC_18) || (addr == MSG_TA_01))) { - // openpilot takes over acceleration/braking control and related HUD messages from the stock ACC radar - bus_fwd = -1; } else { // Forward all remaining traffic from Extended CAN devices to J533 gateway bus_fwd = 0; diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 8d4b8bb0e19..c20fcc9ffa0 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -7,9 +7,6 @@ from opendbc.safety.tests.common import CANPackerPanda from opendbc.car.volkswagen.values import VolkswagenSafetyFlags -MAX_ACCEL = 2.0 -MIN_ACCEL = -3.5 - MSG_LH_EPS_03 = 0x9F # RX from EPS, for driver steering torque MSG_ESC_51 = 0xFC # RX, for wheel speeds MSG_Motor_54 = 0x14C # RX, for accel pedal @@ -158,65 +155,5 @@ def test_spam_cancel_safety_check(self): self.assertTrue(self._tx(self._gra_acc_01_msg(resume=1))) -class TestVolkswagenMebLongSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_EA_01, 0], [MSG_EA_02, 0], [MSG_MEB_ACC_01, 0], [MSG_ACC_18, 0], [MSG_TA_01, 0]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_EA_02, MSG_MEB_ACC_01, MSG_ACC_18, MSG_TA_01]} - FWD_BUS_LOOKUP = {0: 2, 2: 0} - INACTIVE_ACCEL = 3.01 - - def setUp(self): - self.packer = CANPackerPanda("vw_meb") - self.safety = libsafety_py.libsafety - self.safety.set_safety_hooks(CarParams.SafetyModel.volkswagenMeb, VolkswagenSafetyFlags.LONG_CONTROL) - self.safety.init_tests() - - # stock cruise controls are entirely bypassed under openpilot longitudinal control - def test_disable_control_allowed_from_cruise(self): - pass - - def test_enable_control_allowed_from_cruise(self): - pass - - def test_cruise_engaged_prev(self): - pass - - def test_set_and_resume_buttons(self): - for button in ["set", "resume"]: - # ACC main switch must be on, engage on falling edge - self.safety.set_controls_allowed(0) - self._rx(self._tsk_status_msg(False, main_switch=False)) - self._rx(self._gra_acc_01_msg(_set=(button == "set"), resume=(button == "resume"), bus=0)) - self.assertFalse(self.safety.get_controls_allowed(), f"controls allowed on {button} with main switch off") - self._rx(self._tsk_status_msg(False, main_switch=True)) - self._rx(self._gra_acc_01_msg(_set=(button == "set"), resume=(button == "resume"), bus=0)) - self.assertFalse(self.safety.get_controls_allowed(), f"controls allowed on {button} rising edge") - self._rx(self._gra_acc_01_msg(bus=0)) - self.assertTrue(self.safety.get_controls_allowed(), f"controls not allowed on {button} falling edge") - - def test_cancel_button(self): - # Disable on rising edge of cancel button - self._rx(self._tsk_status_msg(False, main_switch=True)) - self.safety.set_controls_allowed(1) - self._rx(self._gra_acc_01_msg(cancel=True, bus=0)) - self.assertFalse(self.safety.get_controls_allowed(), "controls allowed after cancel") - - def test_main_switch(self): - # Disable as soon as main switch turns off - self._rx(self._tsk_status_msg(False, main_switch=True)) - self.safety.set_controls_allowed(1) - self._rx(self._tsk_status_msg(False, main_switch=False)) - self.assertFalse(self.safety.get_controls_allowed(), "controls allowed after ACC main switch off") - - def test_accel_safety_check(self): - for controls_allowed in [True, False]: - # enforce we don't skip over 0 or inactive accel - for accel in np.concatenate((np.arange(MIN_ACCEL - 2, MAX_ACCEL + 2, 0.03), [0, self.INACTIVE_ACCEL])): - accel = round(accel, 2) # floats might not hit exact boundary conditions without rounding - is_inactive_accel = accel == self.INACTIVE_ACCEL - send = (controls_allowed and MIN_ACCEL <= accel <= MAX_ACCEL) or is_inactive_accel - self.safety.set_controls_allowed(controls_allowed) - self.assertEqual(send, self._tx(self._acc_18_msg(accel)), (controls_allowed, accel)) - - if __name__ == "__main__": unittest.main() From a850485b54cf271791b650bfafdfcb0f6d781f13 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 07:58:10 -0500 Subject: [PATCH 607/653] start commonizing MQB/MEB safety code --- .../safety/safety/safety_volkswagen_common.h | 81 +++++++++++++++++++ opendbc/safety/safety/safety_volkswagen_meb.h | 75 +---------------- opendbc/safety/safety/safety_volkswagen_mqb.h | 14 ---- 3 files changed, 85 insertions(+), 85 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_common.h b/opendbc/safety/safety/safety_volkswagen_common.h index f94879212bf..9274f171456 100644 --- a/opendbc/safety/safety/safety_volkswagen_common.h +++ b/opendbc/safety/safety/safety_volkswagen_common.h @@ -3,6 +3,8 @@ extern const uint16_t FLAG_VOLKSWAGEN_LONG_CONTROL; const uint16_t FLAG_VOLKSWAGEN_LONG_CONTROL = 1; +static uint8_t volkswagen_crc8_lut_8h2f[256]; // Static lookup table for CRC8 poly 0x2F, aka 8H2F/AUTOSAR + extern bool volkswagen_longitudinal; bool volkswagen_longitudinal = false; @@ -11,3 +13,82 @@ bool volkswagen_set_button_prev = false; extern bool volkswagen_resume_button_prev; bool volkswagen_resume_button_prev = false; + + +#define MSG_LH_EPS_03 0x09F // RX from EPS, for driver steering torque +#define MSG_ESP_19 0x0B2 // RX from ABS, for wheel speeds +#define MSG_ESC_51 0x0FC // RX, for wheel speeds +#define MSG_ESC_50 0x102 // RX, for yaw rate +#define MSG_ESP_05 0x106 // RX from ABS, for brake switch state +#define MSG_Motor_51 0x10B // RX for TSK state +#define MSG_TSK_06 0x120 // RX from ECU, for ACC status from drivetrain coordinator +#define MSG_MOTOR_20 0x121 // RX from ECU, for driver throttle input +#define MSG_ACC_06 0x122 // TX by OP, ACC control instructions to the drivetrain coordinator +#define MSG_HCA_01 0x126 // TX by OP, Heading Control Assist steering torque +#define MSG_GRA_ACC_01 0x12B // TX by OP, ACC control buttons for cancel/resume +#define MSG_ACC_07 0x12E // TX by OP, ACC control instructions to the drivetrain coordinator +#define MSG_VMM_02 0x139 // RX, for ESP hold management +#define MSG_QFK_01 0x13D // RX, for steering angle +#define MSG_Motor_54 0x14C // RX, for accel pedal +#define MSG_ACC_18 0x14D // RX from ECU, for ACC status +#define MSG_EA_01 0x1A4 // TX, for EA mitigation +#define MSG_EA_02 0x1F0 // TX, for EA mitigation +#define MSG_EML_06 0x20A // RX, for yaw rate +#define MSG_TA_01 0x26B // TX for Travel Assist status +#define MSG_MEB_ACC_01 0x300 // RX from ECU, for ACC status +#define MSG_HCA_03 0x303 // TX by OP, Heading Control Assist steering torque +#define MSG_ACC_02 0x30C // TX by OP, ACC HUD data to the instrument cluster +#define MSG_LDW_02 0x397 // TX by OP, Lane line recognition and text alerts +#define MSG_MOTOR_14 0x3BE // RX from ECU, for brake switch status + + +static uint32_t volkswagen_mqb_meb_get_checksum(const CANPacket_t *to_push) { + return (uint8_t)GET_BYTE(to_push, 0); +} + +static uint8_t volkswagen_mqb_meb_get_counter(const CANPacket_t *to_push) { + // MQB/MEB message counters are consistently found at LSB 8. + return (uint8_t)GET_BYTE(to_push, 1) & 0xFU; +} + +static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *to_push) { + int addr = GET_ADDR(to_push); + int len = GET_LEN(to_push); + + // This is CRC-8H2F/AUTOSAR with a twist. See the OpenDBC implementation + // of this algorithm for a version with explanatory comments. + + uint8_t crc = 0xFFU; + for (int i = 1; i < len; i++) { + crc ^= (uint8_t)GET_BYTE(to_push, i); + crc = volkswagen_crc8_lut_8h2f[crc]; + } + + uint8_t counter = volkswagen_mqb_meb_get_counter(to_push); + if (addr == MSG_LH_EPS_03) { + crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; + } else if (addr == MSG_GRA_ACC_01) { + crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; + } else if (addr == MSG_QFK_01) { + crc ^= (uint8_t[]){0x20,0xCA,0x68,0xD5,0x1B,0x31,0xE2,0xDA,0x08,0x0A,0xD4,0xDE,0x9C,0xE4,0x35,0x5B}[counter]; + } else if (addr == MSG_ESC_51) { + crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; + } else if (addr == MSG_Motor_54) { + crc ^= (uint8_t[]){0x16,0x35,0x59,0x15,0x9A,0x2A,0x97,0xB8,0x0E,0x4E,0x30,0xCC,0xB3,0x07,0x01,0xAD}[counter]; + } else if (addr == MSG_ESC_50) { + crc ^= (uint8_t[]){0xD7,0x12,0x85,0x7E,0x0B,0x34,0xFA,0x16,0x7A,0x25,0x2D,0x8F,0x04,0x8E,0x5D,0x35}[counter]; + } else if (addr == MSG_VMM_02) { + crc ^= (uint8_t[]){0xED,0x03,0x1C,0x13,0xC6,0x23,0x78,0x7A,0x8B,0x40,0x14,0x51,0xBF,0x68,0x32,0xBA}[counter]; + } else if (addr == MSG_Motor_51) { + crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; + } else if (addr == MSG_MOTOR_14) { + crc ^= (uint8_t[]){0x1F,0x28,0xC6,0x85,0xE6,0xF8,0xB0,0x19,0x5B,0x64,0x35,0x21,0xE4,0xF7,0x9C,0x24}[counter]; + } else if (addr == MSG_EML_06) { + crc ^= (uint8_t[]){0x9D,0xE8,0x36,0xA1,0xCA,0x3B,0x1D,0x33,0xE0,0xD5,0xBB,0x5F,0xAE,0x3C,0x31,0x9F}[counter]; + } else { + // Undefined CAN message, CRC check expected to fail + } + crc = volkswagen_crc8_lut_8h2f[crc]; + + return (uint8_t)(crc ^ 0xFFU); +} diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 6ed680b66ad..d4bc6524e7d 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -3,76 +3,9 @@ #include "safety_declarations.h" #include "safety_volkswagen_common.h" -#define MSG_ESC_51 0xFC // RX, for wheel speeds -#define MSG_Motor_54 0x14C // RX, for accel pedal -#define MSG_ESC_50 0x102 // RX, for yaw rate -#define MSG_VMM_02 0x139 // RX, for ESP hold management -#define MSG_EA_01 0x1A4 // TX, for EA mitigation -#define MSG_EA_02 0x1F0 // TX, for EA mitigation -#define MSG_EML_06 0x20A // RX, for yaw rate -#define MSG_HCA_03 0x303 // TX by OP, Heading Control Assist steering torque -#define MSG_QFK_01 0x13D // RX, for steering angle -#define MSG_MEB_ACC_01 0x300 // RX from ECU, for ACC status -#define MSG_ACC_18 0x14D // RX from ECU, for ACC status -#define MSG_GRA_ACC_01 0x12B // TX by OP, ACC control buttons for cancel/resume -#define MSG_MOTOR_14 0x3BE // RX from ECU, for brake switch status -#define MSG_LDW_02 0x397 // TX by OP, Lane line recognition and text alerts -#define MSG_Motor_51 0x10B // RX for TSK state -#define MSG_TA_01 0x26B // TX for Travel Assist status - -static uint8_t volkswagen_crc8_lut_8h2f[256]; // Static lookup table for CRC8 poly 0x2F, aka 8H2F/AUTOSAR -static int volkswagen_steer_power_prev = 0; - -static uint32_t volkswagen_meb_get_checksum(const CANPacket_t *to_push) { - return (uint8_t)GET_BYTE(to_push, 0); -} - -static uint8_t volkswagen_meb_get_counter(const CANPacket_t *to_push) { - // MQB message counters are consistently found at LSB 8. - return (uint8_t)GET_BYTE(to_push, 1) & 0xFU; -} - -static uint32_t volkswagen_meb_compute_crc(const CANPacket_t *to_push) { - int addr = GET_ADDR(to_push); - int len = GET_LEN(to_push); - // This is CRC-8H2F/AUTOSAR with a twist. See the OpenDBC implementation - // of this algorithm for a version with explanatory comments. - - uint8_t crc = 0xFFU; - for (int i = 1; i < len; i++) { - crc ^= (uint8_t)GET_BYTE(to_push, i); - crc = volkswagen_crc8_lut_8h2f[crc]; - } - - uint8_t counter = volkswagen_meb_get_counter(to_push); - if (addr == MSG_LH_EPS_03) { - crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; - } else if (addr == MSG_GRA_ACC_01) { - crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; - } else if (addr == MSG_QFK_01) { - crc ^= (uint8_t[]){0x20,0xCA,0x68,0xD5,0x1B,0x31,0xE2,0xDA,0x08,0x0A,0xD4,0xDE,0x9C,0xE4,0x35,0x5B}[counter]; - } else if (addr == MSG_ESC_51) { - crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; - } else if (addr == MSG_Motor_54) { - crc ^= (uint8_t[]){0x16,0x35,0x59,0x15,0x9A,0x2A,0x97,0xB8,0x0E,0x4E,0x30,0xCC,0xB3,0x07,0x01,0xAD}[counter]; - } else if (addr == MSG_ESC_50) { - crc ^= (uint8_t[]){0xD7,0x12,0x85,0x7E,0x0B,0x34,0xFA,0x16,0x7A,0x25,0x2D,0x8F,0x04,0x8E,0x5D,0x35}[counter]; - } else if (addr == MSG_VMM_02) { - crc ^= (uint8_t[]){0xED,0x03,0x1C,0x13,0xC6,0x23,0x78,0x7A,0x8B,0x40,0x14,0x51,0xBF,0x68,0x32,0xBA}[counter]; - } else if (addr == MSG_Motor_51) { - crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; - } else if (addr == MSG_MOTOR_14) { - crc ^= (uint8_t[]){0x1F,0x28,0xC6,0x85,0xE6,0xF8,0xB0,0x19,0x5B,0x64,0x35,0x21,0xE4,0xF7,0x9C,0x24}[counter]; - } else if (addr == MSG_EML_06) { - crc ^= (uint8_t[]){0x9D,0xE8,0x36,0xA1,0xCA,0x3B,0x1D,0x33,0xE0,0xD5,0xBB,0x5F,0xAE,0x3C,0x31,0x9F}[counter]; - } else { - // Undefined CAN message, CRC check expected to fail - } - crc = volkswagen_crc8_lut_8h2f[crc]; +static int volkswagen_steer_power_prev = 0; - return (uint8_t)(crc ^ 0xFFU); -} static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration @@ -275,7 +208,7 @@ const safety_hooks volkswagen_meb_hooks = { .rx = volkswagen_meb_rx_hook, .tx = volkswagen_meb_tx_hook, .fwd = volkswagen_meb_fwd_hook, - .get_counter = volkswagen_meb_get_counter, - .get_checksum = volkswagen_meb_get_checksum, - .compute_checksum = volkswagen_meb_compute_crc, + .get_counter = volkswagen_mqb_meb_get_counter, + .get_checksum = volkswagen_mqb_meb_get_checksum, + .compute_checksum = volkswagen_mqb_meb_compute_crc, }; diff --git a/opendbc/safety/safety/safety_volkswagen_mqb.h b/opendbc/safety/safety/safety_volkswagen_mqb.h index 40f7cbccc9f..f0f329e6836 100644 --- a/opendbc/safety/safety/safety_volkswagen_mqb.h +++ b/opendbc/safety/safety/safety_volkswagen_mqb.h @@ -3,20 +3,6 @@ #include "safety_declarations.h" #include "safety_volkswagen_common.h" -#define MSG_ESP_19 0x0B2 // RX from ABS, for wheel speeds -#define MSG_LH_EPS_03 0x09F // RX from EPS, for driver steering torque -#define MSG_ESP_05 0x106 // RX from ABS, for brake switch state -#define MSG_TSK_06 0x120 // RX from ECU, for ACC status from drivetrain coordinator -#define MSG_MOTOR_20 0x121 // RX from ECU, for driver throttle input -#define MSG_ACC_06 0x122 // TX by OP, ACC control instructions to the drivetrain coordinator -#define MSG_HCA_01 0x126 // TX by OP, Heading Control Assist steering torque -#define MSG_GRA_ACC_01 0x12B // TX by OP, ACC control buttons for cancel/resume -#define MSG_ACC_07 0x12E // TX by OP, ACC control instructions to the drivetrain coordinator -#define MSG_ACC_02 0x30C // TX by OP, ACC HUD data to the instrument cluster -#define MSG_MOTOR_14 0x3BE // RX from ECU, for brake switch status -#define MSG_LDW_02 0x397 // TX by OP, Lane line recognition and text alerts - -static uint8_t volkswagen_crc8_lut_8h2f[256]; // Static lookup table for CRC8 poly 0x2F, aka 8H2F/AUTOSAR static bool volkswagen_mqb_brake_pedal_switch = false; static bool volkswagen_mqb_brake_pressure_detected = false; From 903b1c7a731997b80b64f936fb730a64562e2b9a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:01:20 -0500 Subject: [PATCH 608/653] more common code --- .../safety/safety/safety_volkswagen_common.h | 6 +++ opendbc/safety/safety/safety_volkswagen_mqb.h | 46 ++----------------- 2 files changed, 9 insertions(+), 43 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_common.h b/opendbc/safety/safety/safety_volkswagen_common.h index 9274f171456..cc1321ec97b 100644 --- a/opendbc/safety/safety/safety_volkswagen_common.h +++ b/opendbc/safety/safety/safety_volkswagen_common.h @@ -67,6 +67,12 @@ static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *to_push) { uint8_t counter = volkswagen_mqb_meb_get_counter(to_push); if (addr == MSG_LH_EPS_03) { crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; + } else if (addr == MSG_ESP_05) { + crc ^= (uint8_t[]){0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}[counter]; + } else if (addr == MSG_TSK_06) { + crc ^= (uint8_t[]){0xC4,0xE2,0x4F,0xE4,0xF8,0x2F,0x56,0x81,0x9F,0xE5,0x83,0x44,0x05,0x3F,0x97,0xDF}[counter]; + } else if (addr == MSG_MOTOR_20) { + crc ^= (uint8_t[]){0xE9,0x65,0xAE,0x6B,0x7B,0x35,0xE5,0x5F,0x4E,0xC7,0x86,0xA2,0xBB,0xDD,0xEB,0xB4}[counter]; } else if (addr == MSG_GRA_ACC_01) { crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; } else if (addr == MSG_QFK_01) { diff --git a/opendbc/safety/safety/safety_volkswagen_mqb.h b/opendbc/safety/safety/safety_volkswagen_mqb.h index f0f329e6836..ec3b41958b8 100644 --- a/opendbc/safety/safety/safety_volkswagen_mqb.h +++ b/opendbc/safety/safety/safety_volkswagen_mqb.h @@ -6,46 +6,6 @@ static bool volkswagen_mqb_brake_pedal_switch = false; static bool volkswagen_mqb_brake_pressure_detected = false; -static uint32_t volkswagen_mqb_get_checksum(const CANPacket_t *to_push) { - return (uint8_t)GET_BYTE(to_push, 0); -} - -static uint8_t volkswagen_mqb_get_counter(const CANPacket_t *to_push) { - // MQB message counters are consistently found at LSB 8. - return (uint8_t)GET_BYTE(to_push, 1) & 0xFU; -} - -static uint32_t volkswagen_mqb_compute_crc(const CANPacket_t *to_push) { - int addr = GET_ADDR(to_push); - int len = GET_LEN(to_push); - - // This is CRC-8H2F/AUTOSAR with a twist. See the OpenDBC implementation - // of this algorithm for a version with explanatory comments. - - uint8_t crc = 0xFFU; - for (int i = 1; i < len; i++) { - crc ^= (uint8_t)GET_BYTE(to_push, i); - crc = volkswagen_crc8_lut_8h2f[crc]; - } - - uint8_t counter = volkswagen_mqb_get_counter(to_push); - if (addr == MSG_LH_EPS_03) { - crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; - } else if (addr == MSG_ESP_05) { - crc ^= (uint8_t[]){0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}[counter]; - } else if (addr == MSG_TSK_06) { - crc ^= (uint8_t[]){0xC4,0xE2,0x4F,0xE4,0xF8,0x2F,0x56,0x81,0x9F,0xE5,0x83,0x44,0x05,0x3F,0x97,0xDF}[counter]; - } else if (addr == MSG_MOTOR_20) { - crc ^= (uint8_t[]){0xE9,0x65,0xAE,0x6B,0x7B,0x35,0xE5,0x5F,0x4E,0xC7,0x86,0xA2,0xBB,0xDD,0xEB,0xB4}[counter]; - } else if (addr == MSG_GRA_ACC_01) { - crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; - } else { - // Undefined CAN message, CRC check expected to fail - } - crc = volkswagen_crc8_lut_8h2f[crc]; - - return (uint8_t)(crc ^ 0xFFU); -} static safety_config volkswagen_mqb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration @@ -282,7 +242,7 @@ const safety_hooks volkswagen_mqb_hooks = { .rx = volkswagen_mqb_rx_hook, .tx = volkswagen_mqb_tx_hook, .fwd = volkswagen_mqb_fwd_hook, - .get_counter = volkswagen_mqb_get_counter, - .get_checksum = volkswagen_mqb_get_checksum, - .compute_checksum = volkswagen_mqb_compute_crc, + .get_counter = volkswagen_mqb_meb_get_counter, + .get_checksum = volkswagen_mqb_meb_get_checksum, + .compute_checksum = volkswagen_mqb_meb_compute_crc, }; From e5fc3c63a90261af97feb89b2664cf1a4e503908 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:04:36 -0500 Subject: [PATCH 609/653] MISRA --- opendbc/safety/safety/safety_volkswagen_meb.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index d4bc6524e7d..634c09ae314 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -28,6 +28,8 @@ static safety_config volkswagen_meb_init(uint16_t param) { volkswagen_set_button_prev = false; volkswagen_resume_button_prev = false; + UNUSED(param); + gen_crc_lookup_table_8(0x2F, volkswagen_crc8_lut_8h2f); return BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); } From c09886b3eda6c7e85511f785b286bacb4cc21a52 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:08:34 -0500 Subject: [PATCH 610/653] more cleanup --- opendbc/safety/tests/common.py | 2 +- opendbc/safety/tests/test_volkswagen_meb.py | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) diff --git a/opendbc/safety/tests/common.py b/opendbc/safety/tests/common.py index 6f0384f3021..5319fb66c83 100644 --- a/opendbc/safety/tests/common.py +++ b/opendbc/safety/tests/common.py @@ -771,7 +771,7 @@ def test_tx_hook_on_wrong_safety_mode(self): if attr.startswith('TestHyundaiCanfd') and current_test.startswith('TestHyundaiCanfd'): continue if {attr, current_test}.issubset({'TestVolkswagenMqbSafety', 'TestVolkswagenMqbStockSafety', 'TestVolkswagenMqbLongSafety', - 'TestVolkswagenMebSafety', 'TestVolkswagenMebStockSafety', 'TestVolkswagenMebLongSafety',}): + 'TestVolkswagenMebSafety', 'TestVolkswagenMebStockSafety',}): continue # overlapping TX addrs, but they're not actuating messages for either car diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index c20fcc9ffa0..49ce0fc380b 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -99,19 +99,6 @@ def _acc_18_msg(self, accel): values = {"ACC_Sollbeschleunigung_02": accel} return self.packer.make_can_msg_panda("ACC_18", 0, values) - # TODO: re-enable if a usable redundant brake signal is found - # Verify brake_pressed is true if either the switch or pressure threshold signals are true - # def test_redundant_brake_signals(self): - # test_combinations = [(True, True, True), (True, True, False), (True, False, True), (False, False, False)] - # for brake_pressed, motor_14_signal, esp_05_signal in test_combinations: - # self._rx(self._motor_14_msg(False)) - # self._rx(self._esp_05_msg(False)) - # self.assertFalse(self.safety.get_brake_pressed_prev()) - # self._rx(self._motor_14_msg(motor_14_signal)) - # self._rx(self._esp_05_msg(esp_05_signal)) - # self.assertEqual(brake_pressed, self.safety.get_brake_pressed_prev(), - # f"expected {brake_pressed=} with {motor_14_signal=} and {esp_05_signal=}") - # TODO: consolidate with MQB def test_torque_measurements(self): # TODO: make this test work with all cars From 445a1eac810c362b92c2d4c81c0ce0b2100a43b5 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:10:03 -0500 Subject: [PATCH 611/653] more cleanup --- opendbc/safety/tests/test_volkswagen_meb.py | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 49ce0fc380b..89a999b3573 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -1,11 +1,9 @@ #!/usr/bin/env python3 import unittest -import numpy as np from opendbc.car.structs import CarParams from opendbc.safety.tests.libsafety import libsafety_py import opendbc.safety.tests.common as common from opendbc.safety.tests.common import CANPackerPanda -from opendbc.car.volkswagen.values import VolkswagenSafetyFlags MSG_LH_EPS_03 = 0x9F # RX from EPS, for driver steering torque MSG_ESC_51 = 0xFC # RX, for wheel speeds @@ -44,13 +42,6 @@ def _speed_msg(self, speed): values = {"%s_Radgeschw" % s: speed for s in ["HL", "HR", "VL", "VR"]} return self.packer.make_can_msg_panda("ESC_51", 0, values) - # TODO: does MEB have a usable redundant brake signal? - # Driver brake pressure over threshold - # def _esp_05_msg(self, brake): - # values = {"ESP_Fahrer_bremst": brake} - # return self.packer.make_can_msg_panda("ESP_05", 0, values) - - # TODO: consolidate with MQB # Brake pedal switch def _motor_14_msg(self, brake): values = {"MO_Fahrer_bremst": brake} @@ -64,7 +55,6 @@ def _user_gas_msg(self, gas): values = {"Accelerator_Pressure": gas} return self.packer.make_can_msg_panda("Motor_54", 0, values) - # TODO: simplify to _pcm_status_msg, consolidate with MQB # ACC engagement status def _tsk_status_msg(self, enable, main_switch=True): if main_switch: @@ -77,7 +67,6 @@ def _tsk_status_msg(self, enable, main_switch=True): def _pcm_status_msg(self, enable): return self._tsk_status_msg(enable) - # TODO: consolidate with MQB # Driver steering input torque def _torque_driver_msg(self, torque): values = {"EPS_Lenkmoment": abs(torque), "EPS_VZ_Lenkmoment": torque < 0} @@ -88,20 +77,12 @@ def _torque_driver_msg(self, torque): # def _torque_cmd_msg(self, torque, steer_req=1): # pass - # TODO: consolidate with MQB # Cruise control buttons def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=2): values = {"GRA_Abbrechen": cancel, "GRA_Tip_Setzen": _set, "GRA_Tip_Wiederaufnahme": resume} return self.packer.make_can_msg_panda("GRA_ACC_01", bus, values) - # Acceleration request to drivetrain coordinator - def _acc_18_msg(self, accel): - values = {"ACC_Sollbeschleunigung_02": accel} - return self.packer.make_can_msg_panda("ACC_18", 0, values) - - # TODO: consolidate with MQB def test_torque_measurements(self): - # TODO: make this test work with all cars self._rx(self._torque_driver_msg(50)) self._rx(self._torque_driver_msg(-50)) self._rx(self._torque_driver_msg(0)) From c130c0700e35b869369a515822a6b921736a7996 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:39:57 -0500 Subject: [PATCH 612/653] checkpoint --- .../safety/safety/safety_volkswagen_common.h | 8 --- opendbc/safety/safety/safety_volkswagen_meb.h | 54 +++++-------------- opendbc/safety/tests/test_volkswagen_meb.py | 30 ++++++++--- opendbc/safety/tests/test_volkswagen_mqb.py | 1 + 4 files changed, 36 insertions(+), 57 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_common.h b/opendbc/safety/safety/safety_volkswagen_common.h index cc1321ec97b..6f8ab939bee 100644 --- a/opendbc/safety/safety/safety_volkswagen_common.h +++ b/opendbc/safety/safety/safety_volkswagen_common.h @@ -75,22 +75,14 @@ static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *to_push) { crc ^= (uint8_t[]){0xE9,0x65,0xAE,0x6B,0x7B,0x35,0xE5,0x5F,0x4E,0xC7,0x86,0xA2,0xBB,0xDD,0xEB,0xB4}[counter]; } else if (addr == MSG_GRA_ACC_01) { crc ^= (uint8_t[]){0x6A,0x38,0xB4,0x27,0x22,0xEF,0xE1,0xBB,0xF8,0x80,0x84,0x49,0xC7,0x9E,0x1E,0x2B}[counter]; - } else if (addr == MSG_QFK_01) { - crc ^= (uint8_t[]){0x20,0xCA,0x68,0xD5,0x1B,0x31,0xE2,0xDA,0x08,0x0A,0xD4,0xDE,0x9C,0xE4,0x35,0x5B}[counter]; } else if (addr == MSG_ESC_51) { crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; } else if (addr == MSG_Motor_54) { crc ^= (uint8_t[]){0x16,0x35,0x59,0x15,0x9A,0x2A,0x97,0xB8,0x0E,0x4E,0x30,0xCC,0xB3,0x07,0x01,0xAD}[counter]; - } else if (addr == MSG_ESC_50) { - crc ^= (uint8_t[]){0xD7,0x12,0x85,0x7E,0x0B,0x34,0xFA,0x16,0x7A,0x25,0x2D,0x8F,0x04,0x8E,0x5D,0x35}[counter]; - } else if (addr == MSG_VMM_02) { - crc ^= (uint8_t[]){0xED,0x03,0x1C,0x13,0xC6,0x23,0x78,0x7A,0x8B,0x40,0x14,0x51,0xBF,0x68,0x32,0xBA}[counter]; } else if (addr == MSG_Motor_51) { crc ^= (uint8_t[]){0x77,0x5C,0xA0,0x89,0x4B,0x7C,0xBB,0xD6,0x1F,0x6C,0x4F,0xF6,0x20,0x2B,0x43,0xDD}[counter]; } else if (addr == MSG_MOTOR_14) { crc ^= (uint8_t[]){0x1F,0x28,0xC6,0x85,0xE6,0xF8,0xB0,0x19,0x5B,0x64,0x35,0x21,0xE4,0xF7,0x9C,0x24}[counter]; - } else if (addr == MSG_EML_06) { - crc ^= (uint8_t[]){0x9D,0xE8,0x36,0xA1,0xCA,0x3B,0x1D,0x33,0xE0,0xD5,0xBB,0x5F,0xAE,0x3C,0x31,0x9F}[counter]; } else { // Undefined CAN message, CRC check expected to fail } diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 634c09ae314..2f3e40bf029 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -88,15 +88,6 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } } - // update cruise buttons - if (addr == MSG_GRA_ACC_01) { - // Always exit controls on rising edge of Cancel - // Signal: GRA_ACC_01.GRA_Abbrechen - if (GET_BIT(to_push, 13U)) { - controls_allowed = false; - } - } - // update brake pedal if (addr == MSG_MOTOR_14) { brake_pressed = GET_BIT(to_push, 28U); @@ -113,30 +104,9 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { - // TODO: This has not really been tested/validated, or synced to the new curvature control in openpilot - // lateral limits for curvature - const SteeringLimits VOLKSWAGEN_MEB_STEERING_LIMITS = { - // keep in mind, we do have a false tx block problem with same limits as in opendbc values, have them a little bit higher +0.0002 - // for FORD enforce_angle_error is active with margin of 0.002 which could solve the issue, we have here - .max_steer = 29105, // 0.195 rad/m - .angle_deg_to_can = 149253.7313, // 1 / 6.7e-6 rad/m to can - .angle_rate_up_lookup = { - {5., 25., 25.}, - {0.0017, 0.00035, 0.00035} // in rad/m - }, - .angle_rate_down_lookup = { - {5., 25., 25.}, - {0.0022, 0.00055, 0.00055} - }, - //.max_angle_error = , // THIS WOULD ALLOW MORE ROOM FOR OUR RATE LIMITS see comment above, but we want correct safety limit checks? and - //.enforce_angle_error = true, // to allow some difference for our power control handling at the same time - .inactive_angle_is_zero = true, - }; - int addr = GET_ADDR(to_send); bool tx = true; - // TODO: review and implement power backoff on driver input torque // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { int desired_curvature_raw = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); @@ -149,17 +119,19 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { bool steer_req = GET_BIT(to_send, 14U); int steer_power = (GET_BYTE(to_send, 2U) >> 0) & 0x7FU; - if (steer_angle_cmd_checks(desired_curvature_raw, steer_req, VOLKSWAGEN_MEB_STEERING_LIMITS)) { - tx = false; - - // steer power is still allowed to decrease to zero monotonously - // while controls are not allowed anymore - if (steer_req && steer_power != 0) { - if (steer_power < volkswagen_steer_power_prev) { - tx = true; - } - } - } + // TODO: implement lateral accel limits based on vehicle speed and QFK curvature + // TODO: review and implement power backoff on driver input torque + // if (desired_curvature > conditions-tbd) { + // tx = false; + // + // // steer power is still allowed to decrease to zero monotonously + // // while controls are not allowed anymore + // if (steer_req && steer_power != 0) { + // if (steer_power < volkswagen_steer_power_prev) { + // tx = true; + // } + // } + // } if (!steer_req && steer_power != 0) { tx = false; // steer power is not 0 when disabled diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 89a999b3573..e91e56ba5da 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -28,8 +28,8 @@ class TestVolkswagenMebSafety(common.PandaCarSafetyTest): STANDSTILL_THRESHOLD = 0 RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_03,)} - DRIVER_TORQUE_ALLOWANCE = 80 - DRIVER_TORQUE_FACTOR = 3 + DRIVER_TORQUE_ALLOWANCE = 60 + @classmethod def setUpClass(cls): @@ -72,13 +72,27 @@ def _torque_driver_msg(self, torque): values = {"EPS_Lenkmoment": abs(torque), "EPS_VZ_Lenkmoment": torque < 0} return self.packer.make_can_msg_panda("LH_EPS_03", 0, values) - # FIXME: replace with curvature control - # openpilot steering output torque - # def _torque_cmd_msg(self, torque, steer_req=1): - # pass + # Current curvature + def _curvature_msg(self, curvature): + values = { + "Curvature": abs(curvature), + "Curvature_VZ": curvature < 0, + } + return self.packer.make_can_msg_panda("QFK_01", 0, values) + + # Steering actuation + def _curvature_actuation_msg(self, lat_active, power, curvature): + values = { + "Curvature": abs(curvature), + "Curvature_VZ": curvature < 0, + "Power": power, + "RequestStatus": 4 if lat_active else 2, + "HighSendRate": lat_active, + } + return self.packer.make_can_msg_panda("HCA_03", 0, values) # Cruise control buttons - def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=2): + def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=0): values = {"GRA_Abbrechen": cancel, "GRA_Tip_Setzen": _set, "GRA_Tip_Wiederaufnahme": resume} return self.packer.make_can_msg_panda("GRA_ACC_01", bus, values) @@ -103,7 +117,7 @@ def test_torque_measurements(self): class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_EA_01, 0], [MSG_EA_02, 0], [MSG_GRA_ACC_01, 2]] + TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2], [MSG_EA_01, 0], [MSG_EA_02, 0]] FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_EA_02]} FWD_BUS_LOOKUP = {0: 2, 2: 0} diff --git a/opendbc/safety/tests/test_volkswagen_mqb.py b/opendbc/safety/tests/test_volkswagen_mqb.py index 65f2ef922fe..ef80b68af68 100755 --- a/opendbc/safety/tests/test_volkswagen_mqb.py +++ b/opendbc/safety/tests/test_volkswagen_mqb.py @@ -36,6 +36,7 @@ class TestVolkswagenMqbSafety(common.PandaCarSafetyTest, common.DriverTorqueStee DRIVER_TORQUE_ALLOWANCE = 80 DRIVER_TORQUE_FACTOR = 3 + @classmethod def setUpClass(cls): if cls.__name__ == "TestVolkswagenMqbSafety": From d93673c6065d7402ed7d465c895641b8c4ea0779 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:53:24 -0500 Subject: [PATCH 613/653] checkpoint --- .../safety/safety/safety_volkswagen_common.h | 2 ++ opendbc/safety/tests/test_volkswagen_meb.py | 25 +++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_common.h b/opendbc/safety/safety/safety_volkswagen_common.h index 6f8ab939bee..d75a5861dd5 100644 --- a/opendbc/safety/safety/safety_volkswagen_common.h +++ b/opendbc/safety/safety/safety_volkswagen_common.h @@ -69,6 +69,8 @@ static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *to_push) { crc ^= (uint8_t[]){0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5,0xF5}[counter]; } else if (addr == MSG_ESP_05) { crc ^= (uint8_t[]){0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07}[counter]; + } else if (addr == MSG_QFK_01) { + crc ^= (uint8_t[]){0x20,0xCA,0x68,0xD5,0x1B,0x31,0xE2,0xDA,0x08,0x0A,0xD4,0xDE,0x9C,0xE4,0x35,0x5B}[counter]; } else if (addr == MSG_TSK_06) { crc ^= (uint8_t[]){0xC4,0xE2,0x4F,0xE4,0xF8,0x2F,0x56,0x81,0x9F,0xE5,0x83,0x44,0x05,0x3F,0x97,0xDF}[counter]; } else if (addr == MSG_MOTOR_20) { diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index e91e56ba5da..f52c062af3d 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -73,7 +73,7 @@ def _torque_driver_msg(self, torque): return self.packer.make_can_msg_panda("LH_EPS_03", 0, values) # Current curvature - def _curvature_msg(self, curvature): + def _vehicle_curvature_msg(self, curvature): values = { "Curvature": abs(curvature), "Curvature_VZ": curvature < 0, @@ -81,7 +81,7 @@ def _curvature_msg(self, curvature): return self.packer.make_can_msg_panda("QFK_01", 0, values) # Steering actuation - def _curvature_actuation_msg(self, lat_active, power, curvature): + def _curvature_actuation_msg(self, lat_active=False, power=0, curvature=0): values = { "Curvature": abs(curvature), "Curvature_VZ": curvature < 0, @@ -115,6 +115,27 @@ def test_torque_measurements(self): self.assertEqual(0, self.safety.get_torque_driver_max()) self.assertEqual(0, self.safety.get_torque_driver_min()) + # FIXME: minimal stub, make this probe all combinations of inputs, verify ramp-down on disengage, etc + def test_actuation_control_bit(self): + self.safety.set_controls_allowed(1) + self.assertTrue(self._tx(self._curvature_actuation_msg(lat_active=True, power=100, curvature=1))) + self.assertFalse(self._tx(self._curvature_actuation_msg(lat_active=False, power=100, curvature=1))) + self.assertTrue(False) # TODO + + # FIXME: minimal stub, make this probe the valid range of inputs, check boundaries + def test_vehicle_curvature_message(self): + self.safety.set_controls_allowed(1) + self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=1))) + self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=-1))) + self.assertTrue(False) # TODO + + # TODO: implement Panda-side v_ego**2 * curvature safety + def test_safe_lateral_curvature(self): + self.assertTrue(False) # TODO + + # TODO: implement Panda-side HCA power safety based on driver torque input + def test_safe_lateral_power(self): + self.assertTrue(False) # TODO class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2], [MSG_EA_01, 0], [MSG_EA_02, 0]] From 7df32c0ecce77238453a19fb47735b885793809e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 08:55:57 -0500 Subject: [PATCH 614/653] cleanup --- opendbc/safety/tests/test_volkswagen_mqb.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/safety/tests/test_volkswagen_mqb.py b/opendbc/safety/tests/test_volkswagen_mqb.py index ef80b68af68..2333a038a42 100755 --- a/opendbc/safety/tests/test_volkswagen_mqb.py +++ b/opendbc/safety/tests/test_volkswagen_mqb.py @@ -22,7 +22,6 @@ MSG_ACC_02 = 0x30C # TX by OP, ACC HUD data to the instrument cluster MSG_LDW_02 = 0x397 # TX by OP, Lane line recognition and text alerts - class TestVolkswagenMqbSafety(common.PandaCarSafetyTest, common.DriverTorqueSteeringSafetyTest): STANDSTILL_THRESHOLD = 0 RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_01,)} From 4bbeb67396fc652ca2c215d672fdcacfde597fa9 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 09:23:38 -0500 Subject: [PATCH 615/653] don't need those --- opendbc/safety/safety/safety_volkswagen_meb.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 2f3e40bf029..9f0e5ea6bea 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -20,9 +20,6 @@ static safety_config volkswagen_meb_init(uint16_t param) { {.msg = {{MSG_QFK_01, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, {.msg = {{MSG_ESC_51, 0, 48, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, {.msg = {{MSG_Motor_54, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, - {.msg = {{MSG_ESC_50, 0, 48, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, - {.msg = {{MSG_VMM_02, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, - {.msg = {{MSG_EML_06, 0, 64, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, }; volkswagen_set_button_prev = false; From 8c23e1b4fb9b3f56eb4acbc5a88fc77d2bdd4159 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 10:15:54 -0500 Subject: [PATCH 616/653] additional alpha long cleanup --- opendbc/car/volkswagen/interface.py | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 83dca7a7550..55dc14fe11f 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -41,7 +41,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if any(msg in fingerprint[1] for msg in (0x520, 0x86, 0xFD, 0x13D)): # Airbag_02, LWI_01, ESP_21, QFK_01 ret.networkLocation = NetworkLocation.gateway - ret.radarUnavailable = False else: ret.networkLocation = NetworkLocation.fwdCamera From 1d35d99894501a75fbcd605ad063f9fd8ea86b29 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 25 Feb 2025 10:18:32 -0500 Subject: [PATCH 617/653] whitespace cleanup --- opendbc/safety/tests/test_volkswagen_mqb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/tests/test_volkswagen_mqb.py b/opendbc/safety/tests/test_volkswagen_mqb.py index 2333a038a42..65f2ef922fe 100755 --- a/opendbc/safety/tests/test_volkswagen_mqb.py +++ b/opendbc/safety/tests/test_volkswagen_mqb.py @@ -22,6 +22,7 @@ MSG_ACC_02 = 0x30C # TX by OP, ACC HUD data to the instrument cluster MSG_LDW_02 = 0x397 # TX by OP, Lane line recognition and text alerts + class TestVolkswagenMqbSafety(common.PandaCarSafetyTest, common.DriverTorqueSteeringSafetyTest): STANDSTILL_THRESHOLD = 0 RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_01,)} @@ -35,7 +36,6 @@ class TestVolkswagenMqbSafety(common.PandaCarSafetyTest, common.DriverTorqueStee DRIVER_TORQUE_ALLOWANCE = 80 DRIVER_TORQUE_FACTOR = 3 - @classmethod def setUpClass(cls): if cls.__name__ == "TestVolkswagenMqbSafety": From c229ed6685352af8fb8e160b1d798207b3d93932 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 10:02:02 -0500 Subject: [PATCH 618/653] work around mutation test issue --- opendbc/car/volkswagen/carcontroller.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 56ee4d0e481..22077f4771a 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -62,6 +62,7 @@ def __init__(self, dbc_names, CP): self.packer_pt = CANPacker(dbc_names[Bus.pt]) self.ext_bus = CANBUS.pt if CP.networkLocation == structs.CarParams.NetworkLocation.fwdCamera else CANBUS.cam self.aeb_available = not CP.flags & VolkswagenFlags.PQ + self.openpilot_longitudinal = self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB self.apply_steer_last = 0 self.apply_steer_power_last = 0 @@ -148,7 +149,7 @@ def update(self, CC, CS, now_nanos): # **** Acceleration Controls ******************************************** # - if self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB: + if self.openpilot_longitudinal: if self.frame % self.CCP.ACC_CONTROL_STEP == 0: acc_control = self.CCS.acc_control_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) accel = float(np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0) @@ -172,7 +173,7 @@ def update(self, CC, CS, now_nanos): can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, CS.out.steeringPressed, hud_alert, hud_control)) - if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.CP.openpilotLongitudinalControl: + if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.openpilot_longitudinal: lead_distance = 0 if hud_control.leadVisible and self.frame * DT_CTRL > 1.0: # Don't display lead until we know the scaling factor lead_distance = 512 if CS.upscale_lead_car_signal else 8 From dca79cab61e45fdd013fefc3a974489cbb65ef1d Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 10:04:50 -0500 Subject: [PATCH 619/653] remove curvature clipping --- opendbc/car/volkswagen/carcontroller.py | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 22077f4771a..ecd7fdb69c0 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -10,28 +10,6 @@ LongCtrlState = structs.CarControl.Actuators.LongControlState -def apply_iso_curvature_limits(v_ego, previous_curvature, time_step, desired_curvature): - # ISO 11270:2014 safety constraints - MAX_LATERAL_ACCELERATION = 3.0 # m/s^2 - MAX_LATERAL_JERK = 5.0 # m/s^3 - JERK_TIME_HORIZON = 0.5 # seconds - - if v_ego <= 0.1: - return desired_curvature - - # Calculate maximum change in curvature over the 0.5s time horizon, scale the max change to our current time step - max_curvature_acc = MAX_LATERAL_ACCELERATION / (v_ego**2) - max_delta_curvature = (MAX_LATERAL_JERK * JERK_TIME_HORIZON) / (v_ego**2) * (time_step / JERK_TIME_HORIZON) - - min_curvature_jerk = previous_curvature - max_delta_curvature - max_curvature_jerk = previous_curvature + max_delta_curvature - - max_curvature = min(max_curvature_acc, max_curvature_jerk) - min_curvature = max(-max_curvature_acc, min_curvature_jerk) - - return max(min(desired_curvature, max_curvature), min_curvature) - - def apply_lateral_control_power(CCP, lat_active, driver_input, previous_power): qfk_enable = True @@ -88,8 +66,7 @@ def update(self, CC, CS, now_nanos): # maximum real steering angle change ~ 120-130 deg/s # Calibrate our curvature command by the offset between openpilot's current curvature and the QFK's current curvature - calibrated_actuator_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) - apply_curvature = apply_iso_curvature_limits(CS.out.vEgo, self.apply_curvature_last, DT_CTRL * self.CCP.STEER_STEP, calibrated_actuator_curvature) + apply_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) qfk_enable, apply_steer_power = apply_lateral_control_power(self.CCP, CC.latActive, CS.out.steeringPressed, self.apply_steer_power_last) can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) From 6f7a5dd8efa1381738d1f9c5fdf3aae7392d270e Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 10:38:11 -0500 Subject: [PATCH 620/653] limit steering with power control --- opendbc/car/volkswagen/carcontroller.py | 13 +++++++------ opendbc/car/volkswagen/values.py | 9 +++++---- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index ecd7fdb69c0..f14a6e03b76 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -10,14 +10,15 @@ LongCtrlState = structs.CarControl.Actuators.LongControlState -def apply_lateral_control_power(CCP, lat_active, driver_input, previous_power): +def apply_lateral_control_power(CCP, lat_active, steering_torque, previous_power): qfk_enable = True if lat_active: - if driver_input: - apply_power = max(previous_power - CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MIN) - else: - apply_power = min(previous_power + CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MAX) + min_power = max(previous_power - CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MIN) + max_power = max(previous_power + CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MAX) + target_power = float(np.interp(steering_torque, [CCP.STEER_DRIVER_ALLOWANCE, CCP.STEER_DRIVER_MAX], + [CCP.STEERING_POWER_MAX, CCP.STEERING_POWER_MIN])) + apply_power = min(max(target_power, min_power), max_power) elif previous_power > 0: apply_power = max(previous_power - CCP.STEERING_POWER_STEP, 0) else: @@ -67,7 +68,7 @@ def update(self, CC, CS, now_nanos): # Calibrate our curvature command by the offset between openpilot's current curvature and the QFK's current curvature apply_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) - qfk_enable, apply_steer_power = apply_lateral_control_power(self.CCP, CC.latActive, CS.out.steeringPressed, self.apply_steer_power_last) + qfk_enable, apply_steer_power = apply_lateral_control_power(self.CCP, CC.latActive, CS.out.steeringTorque, self.apply_steer_power_last) can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 3034a3b0714..40f30ef8845 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -75,10 +75,11 @@ def __init__(self, CP): elif CP.flags & VolkswagenFlags.MEB: self.LDW_STEP = 10 # LDW_02 message frequency 10Hz self.ACC_HUD_STEP = 6 # MEB_ACC_01 message frequency 16Hz - self.STEER_DRIVER_ALLOWANCE = 60 # Driver intervention threshold 0.6 Nm - self.STEERING_POWER_MAX = 100 # HCA_03 maximum steering power - self.STEERING_POWER_MIN = 40 # HCA_03 minimum steering power, used for driver intervention - self.STEERING_POWER_STEP = 3 # HCA_03 steering power counter steps + self.STEER_DRIVER_ALLOWANCE = 60 # Driver torque 0.6 Nm, begin steering reduction from MAX + self.STEER_DRIVER_MAX = 300 # Driver torque 3.0 Nm, stop steering reduction at MIN + self.STEERING_POWER_MAX = 50 # HCA_03 maximum steering power, percentage + self.STEERING_POWER_MIN = 20 # HCA_03 minimum steering power, percentage + self.STEERING_POWER_STEP = 2 # HCA_03 steering power step increments self.shifter_values = can_define.dv["Gateway_73"]["GE_Fahrstufe"] self.hca_status_values = can_define.dv["QFK_01"]["LatCon_HCA_Status"] From a577be33763444a524b420fb66f6f72b28c2eea0 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 11:50:30 -0500 Subject: [PATCH 621/653] clarity --- opendbc/car/volkswagen/carcontroller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index f14a6e03b76..550456bce02 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -10,14 +10,14 @@ LongCtrlState = structs.CarControl.Actuators.LongControlState -def apply_lateral_control_power(CCP, lat_active, steering_torque, previous_power): +def apply_lateral_control_power(CCP, lat_active, driver_torque, previous_power): qfk_enable = True if lat_active: min_power = max(previous_power - CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MIN) max_power = max(previous_power + CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MAX) - target_power = float(np.interp(steering_torque, [CCP.STEER_DRIVER_ALLOWANCE, CCP.STEER_DRIVER_MAX], - [CCP.STEERING_POWER_MAX, CCP.STEERING_POWER_MIN])) + target_power = float(np.interp(driver_torque, [CCP.STEER_DRIVER_ALLOWANCE, CCP.STEER_DRIVER_MAX], + [CCP.STEERING_POWER_MAX, CCP.STEERING_POWER_MIN])) apply_power = min(max(target_power, min_power), max_power) elif previous_power > 0: apply_power = max(previous_power - CCP.STEERING_POWER_STEP, 0) From 9c5fa743aa7afadd4981ed963c74b2374c9c53d2 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 11:52:36 -0500 Subject: [PATCH 622/653] fix MQB EA --- opendbc/car/volkswagen/carcontroller.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 550456bce02..672f1e65f34 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -108,14 +108,14 @@ def update(self, CC, CS, now_nanos): self.apply_steer_last = apply_steer can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_steer, hca_enabled)) - if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: - # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque - # to the greatest of actual driver input or 2x openpilot's output (1x openpilot output is not enough to - # consistently reset inactivity detection on straight level roads). See commaai/openpilot#23274 for background. - ea_simulated_torque = float(np.clip(apply_steer * 2, -self.CCP.STEER_MAX, self.CCP.STEER_MAX)) - if abs(CS.out.steeringTorque) > abs(ea_simulated_torque): - ea_simulated_torque = CS.out.steeringTorque - can_sends.append(self.CCS.create_eps_update(self.packer_pt, CANBUS.cam, CS.eps_stock_values, ea_simulated_torque)) + if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: + # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque + # to the greatest of actual driver input or 2x openpilot's output (1x openpilot output is not enough to + # consistently reset inactivity detection on straight level roads). See commaai/openpilot#23274 for background. + ea_simulated_torque = float(np.clip(apply_steer * 2, -self.CCP.STEER_MAX, self.CCP.STEER_MAX)) + if abs(CS.out.steeringTorque) > abs(ea_simulated_torque): + ea_simulated_torque = CS.out.steeringTorque + can_sends.append(self.CCS.create_eps_update(self.packer_pt, CANBUS.cam, CS.eps_stock_values, ea_simulated_torque)) # TODO: refactor a bit if self.CP.flags & VolkswagenFlags.MEB: From 44fd11f13d18e29a21efed5bc95299ef2343dc40 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 12:04:34 -0500 Subject: [PATCH 623/653] inline power control --- opendbc/car/volkswagen/carcontroller.py | 42 +++++++++---------------- 1 file changed, 15 insertions(+), 27 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 672f1e65f34..8a122e2806b 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -10,24 +10,6 @@ LongCtrlState = structs.CarControl.Actuators.LongControlState -def apply_lateral_control_power(CCP, lat_active, driver_torque, previous_power): - qfk_enable = True - - if lat_active: - min_power = max(previous_power - CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MIN) - max_power = max(previous_power + CCP.STEERING_POWER_STEP, CCP.STEERING_POWER_MAX) - target_power = float(np.interp(driver_torque, [CCP.STEER_DRIVER_ALLOWANCE, CCP.STEER_DRIVER_MAX], - [CCP.STEERING_POWER_MAX, CCP.STEERING_POWER_MIN])) - apply_power = min(max(target_power, min_power), max_power) - elif previous_power > 0: - apply_power = max(previous_power - CCP.STEERING_POWER_STEP, 0) - else: - qfk_enable = False - apply_power = 0 - - return qfk_enable, apply_power - - class CarController(CarControllerBase): def __init__(self, dbc_names, CP): super().__init__(dbc_names, CP) @@ -44,9 +26,8 @@ def __init__(self, dbc_names, CP): self.openpilot_longitudinal = self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB self.apply_steer_last = 0 - self.apply_steer_power_last = 0 self.apply_curvature_last = 0 - self.steering_power_last = 0 + self.apply_steer_power_last = 0 self.gra_acc_counter_last = None self.eps_timer_soft_disable_alert = False self.hca_frame_timer_running = 0 @@ -61,14 +42,22 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.STEER_STEP == 0: if self.CP.flags & VolkswagenFlags.MEB: - # Logic to avoid HCA refused state: - # * steering power as counter and near zero before OP lane assist deactivation - # MEB rack can be used continously without time limits - # maximum real steering angle change ~ 120-130 deg/s - # Calibrate our curvature command by the offset between openpilot's current curvature and the QFK's current curvature apply_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) - qfk_enable, apply_steer_power = apply_lateral_control_power(self.CCP, CC.latActive, CS.out.steeringTorque, self.apply_steer_power_last) + + qfk_enable = True + if CC.latActive: + min_power = max(self.apply_steer_power_last - self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MIN) + max_power = max(self.apply_steer_power_last + self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MAX) + target_power = float(np.interp(CS.out.steeringTorque, [self.CCP.STEER_DRIVER_ALLOWANCE, self.CCP.STEER_DRIVER_MAX], + [self.CCP.STEERING_POWER_MAX, self.CCP.STEERING_POWER_MIN])) + apply_steer_power = min(max(target_power, min_power), max_power) + elif self.apply_steer_power_last > 0: + apply_steer_power = max(self.apply_steer_power_last - self.CCP.STEERING_POWER_STEP, 0) + else: + qfk_enable = False + apply_curvature = 0 + apply_steer_power = 0 can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) @@ -124,7 +113,6 @@ def update(self, CC, CS, now_nanos): if self.frame % 50 == 0: can_sends.append(mebcan.create_ea_hud(self.packer_pt, CANBUS.pt)) - # **** Acceleration Controls ******************************************** # if self.openpilot_longitudinal: From 6af0c06ad254972eeb72f0c225735f6f36f34c76 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 12:28:37 -0500 Subject: [PATCH 624/653] additional cleanup and clarity --- opendbc/car/volkswagen/carcontroller.py | 8 +++++--- opendbc/car/volkswagen/carstate.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 8a122e2806b..d949f27f0ef 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -42,9 +42,11 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.STEER_STEP == 0: if self.CP.flags & VolkswagenFlags.MEB: - # Calibrate our curvature command by the offset between openpilot's current curvature and the QFK's current curvature - apply_curvature = actuators.curvature + (CS.curvature - CC.currentCurvature) + # The QFK (lateral control coordinator) control loop compares actuation curvature to its own current curvature + # Calibrate our actuator command by the offset between openpilot's vehicle model curvature and QFK curvature + apply_curvature = actuators.curvature + (CS.qfk_curvature - CC.currentCurvature) + # Progressive QFK power control: smooth engage and disengage, reduce power when the driver is overriding qfk_enable = True if CC.latActive: min_power = max(self.apply_steer_power_last - self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MIN) @@ -59,7 +61,7 @@ def update(self, CC, CS, now_nanos): apply_curvature = 0 apply_steer_power = 0 - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) + can_sends.append(mebcan.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) self.apply_curvature_last = apply_curvature self.apply_steer_power_last = apply_steer_power diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index 23302f2495a..b51965b00ec 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -19,7 +19,7 @@ def __init__(self, CP): self.esp_hold_confirmation = False self.upscale_lead_car_signal = False self.eps_stock_values = False - self.curvature = 0. + self.qfk_curvature = 0. def update_button_enable(self, buttonEvents: list[structs.CarState.ButtonEvent]): if not self.CP.pcmCruise: @@ -66,7 +66,7 @@ def update(self, can_parsers) -> structs.CarState: if self.CP.flags & VolkswagenFlags.MEB: # MEB-specific - self.curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] + self.qfk_curvature = -pt_cp.vl["QFK_01"]["Curvature"] * (1, -1)[int(pt_cp.vl["QFK_01"]["Curvature_VZ"])] ret.fuelGauge = pt_cp.vl["Motor_16"]["MO_Energieinhalt_BMS"] # TODO: is this available on MQB as well? ret.wheelSpeeds = self.get_wheel_speeds( From 18dd5d760118cabd6c4a7887ad58454a8509a177 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 12:31:41 -0500 Subject: [PATCH 625/653] more --- opendbc/car/volkswagen/carcontroller.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index d949f27f0ef..3784e09d5a0 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -51,8 +51,8 @@ def update(self, CC, CS, now_nanos): if CC.latActive: min_power = max(self.apply_steer_power_last - self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MIN) max_power = max(self.apply_steer_power_last + self.CCP.STEERING_POWER_STEP, self.CCP.STEERING_POWER_MAX) - target_power = float(np.interp(CS.out.steeringTorque, [self.CCP.STEER_DRIVER_ALLOWANCE, self.CCP.STEER_DRIVER_MAX], - [self.CCP.STEERING_POWER_MAX, self.CCP.STEERING_POWER_MIN])) + target_power = int(np.interp(CS.out.steeringTorque, [self.CCP.STEER_DRIVER_ALLOWANCE, self.CCP.STEER_DRIVER_MAX], + [self.CCP.STEERING_POWER_MAX, self.CCP.STEERING_POWER_MIN])) apply_steer_power = min(max(target_power, min_power), max_power) elif self.apply_steer_power_last > 0: apply_steer_power = max(self.apply_steer_power_last - self.CCP.STEERING_POWER_STEP, 0) From f048411a5aa1a3fa11bbdb2b7b60b0f6ce01b52c Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 12:34:54 -0500 Subject: [PATCH 626/653] slight wordsmithing --- opendbc/car/volkswagen/carcontroller.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 3784e09d5a0..7e126788e93 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -43,7 +43,7 @@ def update(self, CC, CS, now_nanos): if self.frame % self.CCP.STEER_STEP == 0: if self.CP.flags & VolkswagenFlags.MEB: # The QFK (lateral control coordinator) control loop compares actuation curvature to its own current curvature - # Calibrate our actuator command by the offset between openpilot's vehicle model curvature and QFK curvature + # Calibrate our actuator command by the offset between openpilot's vehicle model and QFK perceived curvatures apply_curvature = actuators.curvature + (CS.qfk_curvature - CC.currentCurvature) # Progressive QFK power control: smooth engage and disengage, reduce power when the driver is overriding From 23d222b346bbca3d35b8a3ab220cbb22c180ba6c Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 13:00:06 -0500 Subject: [PATCH 627/653] write the test first, like a grownup --- opendbc/safety/tests/test_volkswagen_meb.py | 33 ++++++++------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index f52c062af3d..a97fa025a59 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -29,7 +29,10 @@ class TestVolkswagenMebSafety(common.PandaCarSafetyTest): RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_03,)} DRIVER_TORQUE_ALLOWANCE = 60 - + DRIVER_TORQUE_MAX = 300 + STEER_POWER_MIN = 20 + STEER_POWER_MAX = 50 + STEER_POWER_STEP = 2 @classmethod def setUpClass(cls): @@ -116,26 +119,16 @@ def test_torque_measurements(self): self.assertEqual(0, self.safety.get_torque_driver_min()) # FIXME: minimal stub, make this probe all combinations of inputs, verify ramp-down on disengage, etc - def test_actuation_control_bit(self): - self.safety.set_controls_allowed(1) - self.assertTrue(self._tx(self._curvature_actuation_msg(lat_active=True, power=100, curvature=1))) - self.assertFalse(self._tx(self._curvature_actuation_msg(lat_active=False, power=100, curvature=1))) - self.assertTrue(False) # TODO - - # FIXME: minimal stub, make this probe the valid range of inputs, check boundaries - def test_vehicle_curvature_message(self): - self.safety.set_controls_allowed(1) - self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=1))) - self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=-1))) - self.assertTrue(False) # TODO - - # TODO: implement Panda-side v_ego**2 * curvature safety - def test_safe_lateral_curvature(self): - self.assertTrue(False) # TODO + def test_lateral_control_message(self): + for controls_allowed in [True, False]: + self.safety.set_controls_allowed(controls_allowed) + for lat_active, curvature, power in [(True, 1, 0.00001)]: + well_formed_inactive = not lat_active and power == 0 and curvature == 0 + well_formed_active = lat_active and power <= self.STEER_POWER_MAX + should_allow = controls_allowed and (well_formed_active or well_formed_inactive) + self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), + f"{should_allow=} {controls_allowed=} {lat_active=} {power=} {curvature=}") - # TODO: implement Panda-side HCA power safety based on driver torque input - def test_safe_lateral_power(self): - self.assertTrue(False) # TODO class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2], [MSG_EA_01, 0], [MSG_EA_02, 0]] From bb8086de483022adc9f7cee0f79f07a83480075b Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 15:13:58 -0500 Subject: [PATCH 628/653] lateral control safety WIP --- opendbc/safety/safety/safety_volkswagen_meb.h | 59 ++++++++++++------- opendbc/safety/tests/test_volkswagen_meb.py | 34 +++++++++-- 2 files changed, 65 insertions(+), 28 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 9f0e5ea6bea..8c99fce7fa0 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -100,41 +100,56 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } } +// TODO: move STEER constants somewhere sensible +#define STEER_POWER_MAX 50 +#define STEER_POWER_MIN 20 +#define DRIVER_INPUT_MIN 60 +#define DRIVER_INPUT_MAX 300 +#define STEER_POWER_STEP 2 + +bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int steer_req) { + bool violation = false; + + if (steer_req == 0) { + violation |= (steer_power != 0); + violation |= (steer_curvature != 0); + } else { + if (controls_allowed) { + violation |= steer_power > STEER_POWER_MAX; + violation |= steer_power < (volkswagen_steer_power_prev - STEER_POWER_STEP); + violation |= steer_power > (volkswagen_steer_power_prev + STEER_POWER_STEP); + } else { + bool disengaging_power = steer_power <= (volkswagen_steer_power_prev - STEER_POWER_STEP); + violation |= volkswagen_steer_power_prev == 0; + violation |= steer_power > 0 && !disengaging_power; + } + } + + return violation; +} + static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { int addr = GET_ADDR(to_send); bool tx = true; // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { - int desired_curvature_raw = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); + int steer_curvature = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); bool sign = GET_BIT(to_send, 39U); if (!sign) { - desired_curvature_raw *= -1; + steer_curvature *= -1; } bool steer_req = GET_BIT(to_send, 14U); - int steer_power = (GET_BYTE(to_send, 2U) >> 0) & 0x7FU; - - // TODO: implement lateral accel limits based on vehicle speed and QFK curvature - // TODO: review and implement power backoff on driver input torque - // if (desired_curvature > conditions-tbd) { - // tx = false; - // - // // steer power is still allowed to decrease to zero monotonously - // // while controls are not allowed anymore - // if (steer_req && steer_power != 0) { - // if (steer_power < volkswagen_steer_power_prev) { - // tx = true; - // } - // } - // } - - if (!steer_req && steer_power != 0) { - tx = false; // steer power is not 0 when disabled - } + int steer_power = GET_BYTE(to_send, 2U) * 0.4; - volkswagen_steer_power_prev = steer_power; + if (volkswagen_curvature_cmd_checks(steer_power, steer_curvature, steer_req)) { + tx = false; + volkswagen_steer_power_prev = 0; + } else { + volkswagen_steer_power_prev = steer_power; + } } // FORCE CANCEL: ensuring that only the cancel button press is sent when controls are off. diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index a97fa025a59..49e6cf6d82e 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -118,16 +118,38 @@ def test_torque_measurements(self): self.assertEqual(0, self.safety.get_torque_driver_max()) self.assertEqual(0, self.safety.get_torque_driver_min()) - # FIXME: minimal stub, make this probe all combinations of inputs, verify ramp-down on disengage, etc - def test_lateral_control_message(self): + def test_vehicle_curvature_message(self): + self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=0.01))) + self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=-0.01))) + + # TODO: test against driver input torque + def test_lateral_control(self): + test_sequence = [ + # The test order is meaningful, for testing certain violations and for ramp-down on exiting controls + # (LatAct, power, curvature, comment) + (False, 0, 0 , "Normal inactive"), + (True, self.STEER_POWER_STEP * 1, 0.00001, "Normal transition to active"), + (True, self.STEER_POWER_STEP * 2, 0.00001, "Normal active ramp-up"), + (True, self.STEER_POWER_STEP * 4, 0.00001, "Block for excessive ramp rate"), + (True, self.STEER_POWER_STEP * 3, 0.00001, "Block for failure to return to zero before steering again"), + (False, 0, 0 , "Reset with normal inactive"), + (True, self.STEER_POWER_STEP * 1, 0.00001, "Normal transition to active"), + (False, self.STEER_POWER_STEP * 1, 0.00001, "Block for power/curvature without lat control active"), + ] + for controls_allowed in [True, False]: + last_power = 0 self.safety.set_controls_allowed(controls_allowed) - for lat_active, curvature, power in [(True, 1, 0.00001)]: + for lat_active, power, curvature, comment in test_sequence: + min_valid_power = max(last_power - self.STEER_POWER_STEP, 0) + max_valid_power = min(last_power + self.STEER_POWER_STEP, self.STEER_POWER_MAX) + power_valid = min_valid_power <= power <= max_valid_power well_formed_inactive = not lat_active and power == 0 and curvature == 0 - well_formed_active = lat_active and power <= self.STEER_POWER_MAX - should_allow = controls_allowed and (well_formed_active or well_formed_inactive) + well_formed_active = lat_active and power_valid + should_allow = well_formed_inactive or (controls_allowed and well_formed_active) self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), - f"{should_allow=} {controls_allowed=} {lat_active=} {power=} {curvature=}") + f"{comment=} {controls_allowed=} {lat_active=} {power=} {curvature=}") + last_power = power if should_allow else 0 class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): From 123ac1524cf299fb9994c5aa9ce1ef0c782b007c Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 15:47:31 -0500 Subject: [PATCH 629/653] more tests --- opendbc/safety/safety/safety_volkswagen_meb.h | 2 +- opendbc/safety/tests/test_volkswagen_meb.py | 57 ++++++++++++------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 8c99fce7fa0..02d6d39b072 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -119,7 +119,7 @@ bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int s violation |= steer_power < (volkswagen_steer_power_prev - STEER_POWER_STEP); violation |= steer_power > (volkswagen_steer_power_prev + STEER_POWER_STEP); } else { - bool disengaging_power = steer_power <= (volkswagen_steer_power_prev - STEER_POWER_STEP); + bool disengaging_power = steer_power == (volkswagen_steer_power_prev - STEER_POWER_STEP); violation |= volkswagen_steer_power_prev == 0; violation |= steer_power > 0 && !disengaging_power; } diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index 49e6cf6d82e..bd206b25deb 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -123,33 +123,46 @@ def test_vehicle_curvature_message(self): self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=-0.01))) # TODO: test against driver input torque - def test_lateral_control(self): + def test_lateral_control_transitions(self): test_sequence = [ # The test order is meaningful, for testing certain violations and for ramp-down on exiting controls - # (LatAct, power, curvature, comment) - (False, 0, 0 , "Normal inactive"), - (True, self.STEER_POWER_STEP * 1, 0.00001, "Normal transition to active"), - (True, self.STEER_POWER_STEP * 2, 0.00001, "Normal active ramp-up"), - (True, self.STEER_POWER_STEP * 4, 0.00001, "Block for excessive ramp rate"), - (True, self.STEER_POWER_STEP * 3, 0.00001, "Block for failure to return to zero before steering again"), - (False, 0, 0 , "Reset with normal inactive"), - (True, self.STEER_POWER_STEP * 1, 0.00001, "Normal transition to active"), - (False, self.STEER_POWER_STEP * 1, 0.00001, "Block for power/curvature without lat control active"), + # (controls_active, steer_req, steer_power, steer_curvature, comment) + (False, False, 0, 0 , "Normal inactive"), + (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), + (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), + (True, True, self.STEER_POWER_STEP * 4, 0.00001, "Excessive ramp-up rate"), + (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Failure to return to zero before steering again"), + (False, False, 0, 0 , "Reset with normal inactive"), + (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), + (False, True, self.STEER_POWER_STEP * 1, 0.00001, "Power/curvature without lat control active"), + (False, False, 0, 0, "Normal inactive"), + (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), + (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), + (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Active ramp-up"), + (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Excessive ramp-down rate"), + (False, False, 0, 0, "Normal inactive"), + (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), + (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), + (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Active ramp-up"), + (True, True, self.STEER_POWER_STEP * 4, 0.00001, "Active ramp-up"), + (False, True, self.STEER_POWER_STEP * 3, 0.00001, "Soft disengage on controls exit"), + (False, True, self.STEER_POWER_STEP * 1, 0.00001, "Excessive ramp-down rate on controls exit"), + (False, False, 0, 0, "Normal inactive"), ] - for controls_allowed in [True, False]: - last_power = 0 + last_power = 0 + for controls_allowed, lat_active, power, curvature, comment in test_sequence: self.safety.set_controls_allowed(controls_allowed) - for lat_active, power, curvature, comment in test_sequence: - min_valid_power = max(last_power - self.STEER_POWER_STEP, 0) - max_valid_power = min(last_power + self.STEER_POWER_STEP, self.STEER_POWER_MAX) - power_valid = min_valid_power <= power <= max_valid_power - well_formed_inactive = not lat_active and power == 0 and curvature == 0 - well_formed_active = lat_active and power_valid - should_allow = well_formed_inactive or (controls_allowed and well_formed_active) - self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), - f"{comment=} {controls_allowed=} {lat_active=} {power=} {curvature=}") - last_power = power if should_allow else 0 + min_valid_power = max(last_power - self.STEER_POWER_STEP, 0) + max_valid_power = min(last_power + self.STEER_POWER_STEP, self.STEER_POWER_MAX) + power_valid = min_valid_power <= power <= max_valid_power + well_formed_inactive = not lat_active and power == 0 and curvature == 0 + well_formed_active = controls_allowed and lat_active and power_valid + well_formed_disengaging = lat_active and not controls_allowed and power == last_power - self.STEER_POWER_STEP + should_allow = well_formed_active or well_formed_inactive or well_formed_disengaging + self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), + f"{comment=} {controls_allowed=} {lat_active=} {power=} {curvature=}") + last_power = power if should_allow else 0 class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): From 4a64b71bf21128caf358ebde07ffaec6356d5709 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Thu, 27 Feb 2025 15:52:16 -0500 Subject: [PATCH 630/653] clarity --- opendbc/safety/tests/test_volkswagen_meb.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index bd206b25deb..b66f851a285 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -152,14 +152,16 @@ def test_lateral_control_transitions(self): last_power = 0 for controls_allowed, lat_active, power, curvature, comment in test_sequence: - self.safety.set_controls_allowed(controls_allowed) min_valid_power = max(last_power - self.STEER_POWER_STEP, 0) max_valid_power = min(last_power + self.STEER_POWER_STEP, self.STEER_POWER_MAX) power_valid = min_valid_power <= power <= max_valid_power + well_formed_inactive = not lat_active and power == 0 and curvature == 0 well_formed_active = controls_allowed and lat_active and power_valid well_formed_disengaging = lat_active and not controls_allowed and power == last_power - self.STEER_POWER_STEP + should_allow = well_formed_active or well_formed_inactive or well_formed_disengaging + self.safety.set_controls_allowed(controls_allowed) self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), f"{comment=} {controls_allowed=} {lat_active=} {power=} {curvature=}") last_power = power if should_allow else 0 From ed51e1a55ae360f0ad986d0015eac80e4ecaad7a Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 12:41:58 -0500 Subject: [PATCH 631/653] partial MISRA cleanup --- opendbc/safety/safety/safety_volkswagen_meb.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 02d6d39b072..fa14af37630 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -37,6 +37,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Update in-motion state by sampling wheel speeds if (addr == MSG_ESC_51) { + // TODO: GET_BYTES? uint32_t fr = GET_BYTE(to_push, 10U) | GET_BYTE(to_push, 11U) << 8; uint32_t rr = GET_BYTE(to_push, 14U) | GET_BYTE(to_push, 15U) << 8; uint32_t rl = GET_BYTE(to_push, 12U) | GET_BYTE(to_push, 13U) << 8; @@ -60,7 +61,8 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } if (addr == MSG_QFK_01) { - int current_curvature = ((GET_BYTE(to_push, 5U) & 0x7F) << 8 | GET_BYTE(to_push, 4U)); + // TODO: GET_BYTES? + int current_curvature = (((GET_BYTE(to_push, 5U) & 0x7F) << 8) | GET_BYTE(to_push, 4U)); bool current_curvature_sign = GET_BIT(to_push, 55U); if (current_curvature_sign) { @@ -92,7 +94,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // update accel pedal if (addr == MSG_Motor_54) { - int accel_pedal_value = GET_BYTE(to_push, 21U) - 37; + int accel_pedal_value = GET_BYTE(to_push, 21U) - 37U; gas_pressed = accel_pedal_value != 0; } @@ -107,7 +109,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { #define DRIVER_INPUT_MAX 300 #define STEER_POWER_STEP 2 -bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int steer_req) { +static bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int steer_req) { bool violation = false; if (steer_req == 0) { @@ -121,7 +123,7 @@ bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int s } else { bool disengaging_power = steer_power == (volkswagen_steer_power_prev - STEER_POWER_STEP); violation |= volkswagen_steer_power_prev == 0; - violation |= steer_power > 0 && !disengaging_power; + violation |= (steer_power > 0) && !disengaging_power; } } @@ -134,7 +136,8 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { - int steer_curvature = (GET_BYTE(to_send, 3U) | (GET_BYTE(to_send, 4U) & 0x7FU << 8)); + // TODO: GET_BYTES? + int steer_curvature = (GET_BYTE(to_send, 3U) | ((GET_BYTE(to_send, 4U) & 0x7FU) << 8)); bool sign = GET_BIT(to_send, 39U); if (!sign) { From 7a786ae3c741a3738f2729ad318ded5adb7990cc Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 12:48:11 -0500 Subject: [PATCH 632/653] refactor with GET_BYTES, cleanup --- opendbc/safety/safety/safety_volkswagen_meb.h | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index fa14af37630..ddb0e80358a 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -37,11 +37,10 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Update in-motion state by sampling wheel speeds if (addr == MSG_ESC_51) { - // TODO: GET_BYTES? - uint32_t fr = GET_BYTE(to_push, 10U) | GET_BYTE(to_push, 11U) << 8; - uint32_t rr = GET_BYTE(to_push, 14U) | GET_BYTE(to_push, 15U) << 8; - uint32_t rl = GET_BYTE(to_push, 12U) | GET_BYTE(to_push, 13U) << 8; - uint32_t fl = GET_BYTE(to_push, 8U) | GET_BYTE(to_push, 9U) << 8; + uint32_t fr = GET_BYTES(to_push, 10, 11); + uint32_t rr = GET_BYTES(to_push, 14, 15); + uint32_t rl = GET_BYTES(to_push, 12, 13); + uint32_t fl = GET_BYTES(to_push, 8, 9); vehicle_moving = (fr > 0U) || (rr > 0U) || (rl > 0U) || (fl > 0U); @@ -52,7 +51,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Signal: LH_EPS_03.EPS_Lenkmoment (absolute torque) // Signal: LH_EPS_03.EPS_VZ_Lenkmoment (direction) if (addr == MSG_LH_EPS_03) { - int torque_driver_new = GET_BYTE(to_push, 5) | ((GET_BYTE(to_push, 6) & 0x1FU) << 8); + int torque_driver_new = GET_BYTES(to_push, 5, 6) & 0x1FFFU; int sign = (GET_BYTE(to_push, 6) & 0x80U) >> 7; if (sign == 1) { torque_driver_new *= -1; @@ -61,8 +60,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } if (addr == MSG_QFK_01) { - // TODO: GET_BYTES? - int current_curvature = (((GET_BYTE(to_push, 5U) & 0x7F) << 8) | GET_BYTE(to_push, 4U)); + int current_curvature = GET_BYTES(to_push, 4, 5) & 0x7FFF; bool current_curvature_sign = GET_BIT(to_push, 55U); if (current_curvature_sign) { @@ -76,7 +74,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { if (addr == MSG_Motor_51) { // When using stock ACC, enter controls on rising edge of stock ACC engage, exit on disengage // Always exit controls on main switch off - int acc_status = ((GET_BYTE(to_push, 11U) >> 0) & 0x07U); + int acc_status = (GET_BYTE(to_push, 11U) & 0x07U); bool cruise_engaged = (acc_status == 3) || (acc_status == 4) || (acc_status == 5); acc_main_on = cruise_engaged || (acc_status == 2); @@ -136,8 +134,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { - // TODO: GET_BYTES? - int steer_curvature = (GET_BYTE(to_send, 3U) | ((GET_BYTE(to_send, 4U) & 0x7FU) << 8)); + int steer_curvature = GET_BYTES(to_send, 3, 4) & 0x7FFFU; bool sign = GET_BIT(to_send, 39U); if (!sign) { From 0e8f52b3587a6661d17f657b27daaf658b848be3 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 12:50:45 -0500 Subject: [PATCH 633/653] a little more MISRA --- opendbc/safety/safety/safety_volkswagen_meb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index ddb0e80358a..fa71be8f15c 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -60,7 +60,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } if (addr == MSG_QFK_01) { - int current_curvature = GET_BYTES(to_push, 4, 5) & 0x7FFF; + int current_curvature = GET_BYTES(to_push, 4, 5) & 0x7FFFU; bool current_curvature_sign = GET_BIT(to_push, 55U); if (current_curvature_sign) { From f51b316cb625fe277966c3282df24215934bbb57 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 12:55:20 -0500 Subject: [PATCH 634/653] a liiiiitle more MISRA --- opendbc/safety/safety/safety_volkswagen_meb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index fa71be8f15c..7f5bcdc1eb1 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -44,7 +44,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { vehicle_moving = (fr > 0U) || (rr > 0U) || (rl > 0U) || (fl > 0U); - UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4 ) * 0.0075 / 3.6); + UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4.0 ) * 0.0075 / 3.6); } // Update driver input torque samples From a388ac38452a86ccd72290ae44fc186983929534 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 13:27:39 -0500 Subject: [PATCH 635/653] cleanup --- opendbc/safety/safety/safety_volkswagen_meb.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 7f5bcdc1eb1..91b849a1499 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -37,12 +37,12 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Update in-motion state by sampling wheel speeds if (addr == MSG_ESC_51) { + uint32_t fl = GET_BYTES(to_push, 8, 9); uint32_t fr = GET_BYTES(to_push, 10, 11); - uint32_t rr = GET_BYTES(to_push, 14, 15); uint32_t rl = GET_BYTES(to_push, 12, 13); - uint32_t fl = GET_BYTES(to_push, 8, 9); + uint32_t rr = GET_BYTES(to_push, 14, 15); - vehicle_moving = (fr > 0U) || (rr > 0U) || (rl > 0U) || (fl > 0U); + vehicle_moving = (fl + fr + rl + rr) > 0U; UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4.0 ) * 0.0075 / 3.6); } From c7270a2967bb52ad7bc9ecd529525a52c7eb00ef Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 4 Mar 2025 14:28:32 -0500 Subject: [PATCH 636/653] I am dumb --- opendbc/safety/safety/safety_volkswagen_meb.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 91b849a1499..71bd4c201bd 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -37,10 +37,10 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Update in-motion state by sampling wheel speeds if (addr == MSG_ESC_51) { - uint32_t fl = GET_BYTES(to_push, 8, 9); - uint32_t fr = GET_BYTES(to_push, 10, 11); - uint32_t rl = GET_BYTES(to_push, 12, 13); - uint32_t rr = GET_BYTES(to_push, 14, 15); + uint32_t fl = GET_BYTES(to_push, 8, 2); + uint32_t fr = GET_BYTES(to_push, 10, 2); + uint32_t rl = GET_BYTES(to_push, 12, 2); + uint32_t rr = GET_BYTES(to_push, 14, 2); vehicle_moving = (fl + fr + rl + rr) > 0U; @@ -51,7 +51,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Signal: LH_EPS_03.EPS_Lenkmoment (absolute torque) // Signal: LH_EPS_03.EPS_VZ_Lenkmoment (direction) if (addr == MSG_LH_EPS_03) { - int torque_driver_new = GET_BYTES(to_push, 5, 6) & 0x1FFFU; + int torque_driver_new = GET_BYTES(to_push, 5, 2) & 0x1FFFU; int sign = (GET_BYTE(to_push, 6) & 0x80U) >> 7; if (sign == 1) { torque_driver_new *= -1; @@ -60,7 +60,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } if (addr == MSG_QFK_01) { - int current_curvature = GET_BYTES(to_push, 4, 5) & 0x7FFFU; + int current_curvature = GET_BYTES(to_push, 4, 2) & 0x7FFFU; bool current_curvature_sign = GET_BIT(to_push, 55U); if (current_curvature_sign) { @@ -134,7 +134,7 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { // Safety check for HCA_03 Heading Control Assist curvature if (addr == MSG_HCA_03) { - int steer_curvature = GET_BYTES(to_send, 3, 4) & 0x7FFFU; + int steer_curvature = GET_BYTES(to_send, 3, 2) & 0x7FFFU; bool sign = GET_BIT(to_send, 39U); if (!sign) { From c33d857542dcdb78df79c160096c31def6a28666 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Wed, 5 Mar 2025 17:07:19 -0500 Subject: [PATCH 637/653] fix wrong WMI for Euro ID.4 --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 40f30ef8845..61739809ae7 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -328,7 +328,7 @@ class CAR(Platforms): [VWCarDocs("Volkswagen ID.4 2021-25", footnotes=[Footnote.VW_MEB])], VolkswagenCarSpecs(mass=2099, wheelbase=2.77), chassis_codes={"E2", "E8"}, - wmis={WMI.VOLKSWAGEN_EUROPE_CAR, WMI.VOLKSWAGEN_USA_SUV}, + wmis={WMI.VOLKSWAGEN_EUROPE_SUV, WMI.VOLKSWAGEN_USA_SUV}, ) VOLKSWAGEN_JETTA_MK6 = VolkswagenPQPlatformConfig( [VWCarDocs("Volkswagen Jetta 2015-18")], From 3b206fc16b6b0dfd4091fc62ee30a7217010310f Mon Sep 17 00:00:00 2001 From: Jason Young Date: Wed, 5 Mar 2025 21:12:51 -0500 Subject: [PATCH 638/653] update safety test --- opendbc/safety/tests/test_volkswagen_meb.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py index b66f851a285..105048dee04 100755 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ b/opendbc/safety/tests/test_volkswagen_meb.py @@ -158,7 +158,7 @@ def test_lateral_control_transitions(self): well_formed_inactive = not lat_active and power == 0 and curvature == 0 well_formed_active = controls_allowed and lat_active and power_valid - well_formed_disengaging = lat_active and not controls_allowed and power == last_power - self.STEER_POWER_STEP + well_formed_disengaging = lat_active and not controls_allowed and power == max(0, last_power - self.STEER_POWER_STEP) should_allow = well_formed_active or well_formed_inactive or well_formed_disengaging self.safety.set_controls_allowed(controls_allowed) From a60a5847d2945addca2b17219bbe38da215895bd Mon Sep 17 00:00:00 2001 From: Jason Young Date: Wed, 5 Mar 2025 21:25:11 -0500 Subject: [PATCH 639/653] temp disable steer power check --- opendbc/safety/safety/safety_volkswagen_meb.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 71bd4c201bd..9bd4c264c16 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -141,11 +141,12 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { steer_curvature *= -1; } - bool steer_req = GET_BIT(to_send, 14U); + bool steer_req = ((GET_BYTE(to_send, 1) >> 4) & 0x7U) == 4U; int steer_power = GET_BYTE(to_send, 2U) * 0.4; if (volkswagen_curvature_cmd_checks(steer_power, steer_curvature, steer_req)) { - tx = false; + // tx = false; + tx = true; volkswagen_steer_power_prev = 0; } else { volkswagen_steer_power_prev = steer_power; From ba02993ddae77ec4dbe4761fadc5358b978532b2 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Wed, 12 Mar 2025 19:39:33 -0400 Subject: [PATCH 640/653] follow safety refactor --- opendbc/safety/safety/safety_volkswagen_meb.h | 36 +++++++------------ 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/opendbc/safety/safety/safety_volkswagen_meb.h b/opendbc/safety/safety/safety_volkswagen_meb.h index 9bd4c264c16..c71f01d495b 100644 --- a/opendbc/safety/safety/safety_volkswagen_meb.h +++ b/opendbc/safety/safety/safety_volkswagen_meb.h @@ -9,17 +9,17 @@ static int volkswagen_steer_power_prev = 0; static safety_config volkswagen_meb_init(uint16_t param) { // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration - static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24}, {MSG_EA_01, 0, 8}, {MSG_EA_02, 0, 8}, {MSG_GRA_ACC_01, 0, 8}, - {MSG_GRA_ACC_01, 2, 8}, {MSG_LDW_02, 0, 8}}; + static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24, true}, {MSG_EA_01, 0, 8, false}, {MSG_EA_02, 0, 8, false}, {MSG_GRA_ACC_01, 0, 8, false}, + {MSG_GRA_ACC_01, 2, 8, false}, {MSG_LDW_02, 0, 8, false}}; static RxCheck volkswagen_meb_rx_checks[] = { - {.msg = {{MSG_LH_EPS_03, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_MOTOR_14, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, - {.msg = {{MSG_Motor_51, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, - {.msg = {{MSG_GRA_ACC_01, 0, 8, .check_checksum = true, .max_counter = 15U, .frequency = 33U}, { 0 }, { 0 }}}, - {.msg = {{MSG_QFK_01, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_ESC_51, 0, 48, .check_checksum = true, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_Motor_54, 0, 32, .check_checksum = true, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, + {.msg = {{MSG_LH_EPS_03, 0, 8, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_MOTOR_14, 0, 8, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, + {.msg = {{MSG_Motor_51, 0, 32, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, + {.msg = {{MSG_GRA_ACC_01, 0, 8, .max_counter = 15U, .frequency = 33U}, { 0 }, { 0 }}}, + {.msg = {{MSG_QFK_01, 0, 32, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_ESC_51, 0, 48, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, + {.msg = {{MSG_Motor_54, 0, 32, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, }; volkswagen_set_button_prev = false; @@ -95,8 +95,6 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { int accel_pedal_value = GET_BYTE(to_push, 21U) - 37U; gas_pressed = accel_pedal_value != 0; } - - generic_rx_checks((addr == MSG_HCA_03)); } } @@ -165,29 +163,21 @@ static bool volkswagen_meb_tx_hook(const CANPacket_t *to_send) { return tx; } -static int volkswagen_meb_fwd_hook(int bus_num, int addr) { - int bus_fwd = -1; +static bool volkswagen_meb_fwd_hook(int bus_num, int addr) { + bool block_msg = false; switch (bus_num) { - case 0: - bus_fwd = 2; - break; case 2: if ((addr == MSG_HCA_03) || (addr == MSG_LDW_02) || (addr == MSG_EA_01) || (addr == MSG_EA_02)) { // openpilot takes over LKAS steering control and related HUD messages from the camera - bus_fwd = -1; - } else { - // Forward all remaining traffic from Extended CAN devices to J533 gateway - bus_fwd = 0; + block_msg = true; } break; default: - // No other buses should be in use; fallback to do-not-forward - bus_fwd = -1; break; } - return bus_fwd; + return block_msg; } const safety_hooks volkswagen_meb_hooks = { From 69730c9dec263ffebbec5deeb3e655448fd5e782 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Fri, 18 Apr 2025 15:34:19 -0400 Subject: [PATCH 641/653] C3+RP support --- opendbc/car/volkswagen/carcontroller.py | 21 ++++++++++---------- opendbc/car/volkswagen/carstate.py | 26 ++++++++++++------------- opendbc/car/volkswagen/interface.py | 15 +++++++++----- opendbc/car/volkswagen/values.py | 25 ++++++++++++++++++------ 4 files changed, 53 insertions(+), 34 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 048b283c5aa..f43c2e42fee 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -4,7 +4,7 @@ from opendbc.car.common.conversions import Conversions as CV from opendbc.car.interfaces import CarControllerBase from opendbc.car.volkswagen import mqbcan, pqcan, mebcan -from opendbc.car.volkswagen.values import CANBUS, CarControllerParams, VolkswagenFlags +from opendbc.car.volkswagen.values import CanBus, CarControllerParams, VolkswagenFlags VisualAlert = structs.CarControl.HUDControl.VisualAlert LongCtrlState = structs.CarControl.Actuators.LongControlState @@ -14,6 +14,7 @@ class CarController(CarControllerBase): def __init__(self, dbc_names, CP): super().__init__(dbc_names, CP) self.CCP = CarControllerParams(CP) + self.CAN = CanBus(CP) if CP.flags & VolkswagenFlags.PQ: self.CCS = pqcan elif CP.flags & VolkswagenFlags.MEB: @@ -21,7 +22,7 @@ def __init__(self, dbc_names, CP): else: self.CCS = mqbcan self.packer_pt = CANPacker(dbc_names[Bus.pt]) - self.ext_bus = CANBUS.pt if CP.networkLocation == structs.CarParams.NetworkLocation.fwdCamera else CANBUS.cam + self.ext_bus = self.CAN.main if CP.networkLocation == structs.CarParams.NetworkLocation.fwdCamera else self.CAN.camera self.aeb_available = not CP.flags & VolkswagenFlags.PQ self.openpilot_longitudinal = self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB @@ -61,7 +62,7 @@ def update(self, CC, CS, now_nanos): apply_curvature = 0 apply_steer_power = 0 - can_sends.append(mebcan.create_steering_control(self.packer_pt, CANBUS.pt, apply_curvature, qfk_enable, apply_steer_power)) + can_sends.append(mebcan.create_steering_control(self.packer_pt, self.CAN.main, apply_curvature, qfk_enable, apply_steer_power)) self.apply_curvature_last = apply_curvature self.apply_steer_power_last = apply_steer_power @@ -97,7 +98,7 @@ def update(self, CC, CS, now_nanos): self.eps_timer_soft_disable_alert = self.hca_frame_timer_running > self.CCP.STEER_TIME_ALERT / DT_CTRL self.apply_torque_last = apply_torque - can_sends.append(self.CCS.create_steering_control(self.packer_pt, CANBUS.pt, apply_torque, hca_enabled)) + can_sends.append(self.CCS.create_steering_control(self.packer_pt, self.CAN.main, apply_torque, hca_enabled)) if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque @@ -106,14 +107,14 @@ def update(self, CC, CS, now_nanos): ea_simulated_torque = float(np.clip(apply_torque * 2, -self.CCP.STEER_MAX, self.CCP.STEER_MAX)) if abs(CS.out.steeringTorque) > abs(ea_simulated_torque): ea_simulated_torque = CS.out.steeringTorque - can_sends.append(self.CCS.create_eps_update(self.packer_pt, CANBUS.cam, CS.eps_stock_values, ea_simulated_torque)) + can_sends.append(self.CCS.create_eps_update(self.packer_pt, self.CAN.camera, CS.eps_stock_values, ea_simulated_torque)) # TODO: refactor a bit if self.CP.flags & VolkswagenFlags.MEB: if self.frame % 2 == 0: - can_sends.append(mebcan.create_ea_control(self.packer_pt, CANBUS.pt)) + can_sends.append(mebcan.create_ea_control(self.packer_pt, self.CAN.main)) if self.frame % 50 == 0: - can_sends.append(mebcan.create_ea_hud(self.packer_pt, CANBUS.pt)) + can_sends.append(mebcan.create_ea_hud(self.packer_pt, self.CAN.main)) # **** Acceleration Controls ******************************************** # @@ -123,7 +124,7 @@ def update(self, CC, CS, now_nanos): accel = float(np.clip(actuators.accel, self.CCP.ACCEL_MIN, self.CCP.ACCEL_MAX) if CC.longActive else 0) stopping = actuators.longControlState == LongCtrlState.stopping starting = actuators.longControlState == LongCtrlState.pid and (CS.esp_hold_confirmation or CS.out.vEgo < self.CP.vEgoStopping) - can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, CANBUS.pt, CS.acc_type, CC.longActive, accel, + can_sends.extend(self.CCS.create_acc_accel_control(self.packer_pt, self.CAN.main, CS.acc_type, CC.longActive, accel, acc_control, stopping, starting, CS.esp_hold_confirmation)) #if self.aeb_available: @@ -138,7 +139,7 @@ def update(self, CC, CS, now_nanos): hud_alert = 0 if hud_control.visualAlert in (VisualAlert.steerRequired, VisualAlert.ldw): hud_alert = self.CCP.LDW_MESSAGES["laneAssistTakeOver"] - can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, CANBUS.pt, CS.ldw_stock_values, CC.latActive, + can_sends.append(self.CCS.create_lka_hud_control(self.packer_pt, self.CAN.main, CS.ldw_stock_values, CC.latActive, CS.out.steeringPressed, hud_alert, hud_control)) if self.frame % self.CCP.ACC_HUD_STEP == 0 and self.openpilot_longitudinal: @@ -148,7 +149,7 @@ def update(self, CC, CS, now_nanos): acc_hud_status = self.CCS.acc_hud_status_value(CS.out.cruiseState.available, CS.out.accFaulted, CC.longActive) # FIXME: follow the recent displayed-speed updates, also use mph_kmh toggle to fix display rounding problem? set_speed = hud_control.setSpeed * CV.MS_TO_KPH - can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, CANBUS.pt, acc_hud_status, set_speed, + can_sends.append(self.CCS.create_acc_hud_control(self.packer_pt, self.CAN.main, acc_hud_status, set_speed, lead_distance, hud_control.leadDistanceBars)) # **** Stock ACC Button Controls **************************************** # diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index b51965b00ec..d537e98ff26 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -3,7 +3,7 @@ from opendbc.car import Bus, structs from opendbc.car.interfaces import CarStateBase from opendbc.car.common.conversions import Conversions as CV -from opendbc.car.volkswagen.values import DBC, CANBUS, NetworkLocation, TransmissionType, GearShifter, \ +from opendbc.car.volkswagen.values import DBC, CanBus, NetworkLocation, TransmissionType, GearShifter, \ CarControllerParams, VolkswagenFlags ButtonType = structs.CarState.ButtonEvent.Type @@ -332,7 +332,7 @@ def get_can_parsers(CP): pt_messages.append(("Motor_EV_01", 10)) # From J??? unknown EV control module if CP.networkLocation == NetworkLocation.fwdCamera: - # Radars are here on CANBUS.pt + # Radars are here on CanBus.main pt_messages += MqbExtraSignals.fwd_radar_messages if CP.enableBsm: pt_messages += MqbExtraSignals.bsm_radar_messages @@ -349,14 +349,14 @@ def get_can_parsers(CP): ("LDW_02", 10) # From R242 Driver assistance camera ] else: - # Radars are here on CANBUS.cam + # Radars are here on CanBus.camera cam_messages += MqbExtraSignals.fwd_radar_messages if CP.enableBsm: cam_messages += MqbExtraSignals.bsm_radar_messages return { - Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), - Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CANBUS.cam), + Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CanBus(CP).main), + Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CanBus(CP).camera), } @staticmethod @@ -384,7 +384,7 @@ def get_can_parsers_pq(CP): pt_messages += [("Motor_1", 100)] # From J623 Engine control module if CP.networkLocation == NetworkLocation.fwdCamera: - # Extended CAN devices other than the camera are here on CANBUS.pt + # Extended CAN devices other than the camera are here on CanBus.main pt_messages += PqExtraSignals.fwd_radar_messages if CP.enableBsm: pt_messages += PqExtraSignals.bsm_radar_messages @@ -397,14 +397,14 @@ def get_can_parsers_pq(CP): ] if CP.networkLocation == NetworkLocation.gateway: - # Radars are here on CANBUS.cam + # Radars are here on CanBus.camera cam_messages += PqExtraSignals.fwd_radar_messages if CP.enableBsm: cam_messages += PqExtraSignals.bsm_radar_messages return { - Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), - Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CANBUS.cam), + Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CanBus(CP).main), + Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CanBus(CP).camera), } @staticmethod @@ -430,7 +430,7 @@ def get_can_parsers_meb(CP): ] if CP.networkLocation == NetworkLocation.fwdCamera: - # Radars are here on CANBUS.pt + # Radars are here on CanBus.main pt_messages += MebExtraSignals.fwd_radar_messages if CP.enableBsm: pt_messages += MebExtraSignals.bsm_radar_messages @@ -442,14 +442,14 @@ def get_can_parsers_meb(CP): ] if CP.networkLocation == NetworkLocation.gateway: - # Radars are here on CANBUS.cam + # Radars are here on CanBus.camera cam_messages += MebExtraSignals.fwd_radar_messages if CP.enableBsm: cam_messages += MebExtraSignals.bsm_radar_messages return { - Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CANBUS.pt), - Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CANBUS.cam), + Bus.pt: CANParser(DBC[CP.carFingerprint][Bus.pt], pt_messages, CanBus(CP).main), + Bus.cam: CANParser(DBC[CP.carFingerprint][Bus.pt], cam_messages, CanBus(CP).camera), } diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 5066bf99161..ba18f63625d 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -2,7 +2,7 @@ from opendbc.car.interfaces import CarInterfaceBase from opendbc.car.volkswagen.carcontroller import CarController from opendbc.car.volkswagen.carstate import CarState -from opendbc.car.volkswagen.values import CAR, NetworkLocation, TransmissionType, VolkswagenFlags, VolkswagenSafetyFlags +from opendbc.car.volkswagen.values import CanBus, CAR, NetworkLocation, TransmissionType, VolkswagenFlags, VolkswagenSafetyFlags class CarInterface(CarInterfaceBase): @@ -16,7 +16,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if ret.flags & VolkswagenFlags.PQ: # Set global PQ35/PQ46/NMS parameters - ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenPq)] + safety_configs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenPq)] ret.enableBsm = 0x3BA in fingerprint[0] # SWA_1 if 0x440 in fingerprint[0] or docs: # Getriebe_1 @@ -39,7 +39,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters - ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] + safety_configs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.steerControlType = structs.CarParams.SteerControlType.angle ret.transmissionType = TransmissionType.automatic @@ -51,7 +51,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp else: # Set global MQB parameters - ret.safetyConfigs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] + safety_configs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] ret.enableBsm = 0x30F in fingerprint[0] # SWA_01 if 0xAD in fingerprint[0] or docs: # Getriebe_11 @@ -91,7 +91,7 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp if experimental_long: # Proof-of-concept, prep for E2E only. No radar points available. Panda ALLOW_DEBUG firmware required. ret.openpilotLongitudinalControl = True - ret.safetyConfigs[0].safetyParam |= VolkswagenSafetyFlags.LONG_CONTROL.value + safety_configs[0].safetyParam |= VolkswagenSafetyFlags.LONG_CONTROL.value if ret.transmissionType == TransmissionType.manual: ret.minEnableSpeed = 4.5 @@ -101,4 +101,9 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, exp ret.vEgoStopping = 0.5 ret.autoResumeSng = ret.minEnableSpeed == -1 + CAN = CanBus(fingerprint=fingerprint) + if CAN.main >= 4: + safety_configs.insert(0, get_safety_config(structs.CarParams.SafetyModel.noOutput)) + ret.safetyConfigs = safety_configs + return ret diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index e62372f93bb..806196880b8 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field from enum import Enum, IntFlag, StrEnum -from opendbc.car import Bus, CarSpecs, DbcDict, PlatformConfig, Platforms, structs, uds +from opendbc.car import Bus, CanBusBase, CarSpecs, DbcDict, PlatformConfig, Platforms, structs, uds from opendbc.can.can_define import CANDefine from opendbc.car.common.conversions import Conversions as CV from opendbc.car.docs_definitions import CarFootnote, CarHarness, CarDocs, CarParts, Column, \ @@ -17,6 +17,24 @@ Button = namedtuple('Button', ['event_type', 'can_addr', 'can_msg', 'values']) +# TODO: Move forward/rear radar location-detect logic here (cp_extcan, etc) +class CanBus(CanBusBase): + def __init__(self, CP=None, fingerprint=None) -> None: + super().__init__(CP, fingerprint) + + @property + def main(self) -> int: + return self.offset + + @property + def aux(self) -> int: + return self.offset + 1 + + @property + def camera(self) -> int: + return self.offset + 2 + + class CarControllerParams: STEER_STEP = 2 # HCA_01/HCA_1 message frequency 50Hz ACC_CONTROL_STEP = 2 # ACC_06/ACC_07/ACC_System frequency 50Hz @@ -139,11 +157,6 @@ def __init__(self, CP): } -class CANBUS: - pt = 0 - cam = 2 - - class WMI(StrEnum): VOLKSWAGEN_USA_SUV = "1V2" VOLKSWAGEN_USA_CAR = "1VW" From 0a95304398d687ddf89de4d87e98affc3308a650 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 20:37:02 -0400 Subject: [PATCH 642/653] to_push -> msg --- opendbc/safety/modes/volkswagen_meb.h | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/opendbc/safety/modes/volkswagen_meb.h b/opendbc/safety/modes/volkswagen_meb.h index 4c23a60af03..e74b2be416e 100644 --- a/opendbc/safety/modes/volkswagen_meb.h +++ b/opendbc/safety/modes/volkswagen_meb.h @@ -31,16 +31,16 @@ static safety_config volkswagen_meb_init(uint16_t param) { return BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); } -static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { - if (GET_BUS(to_push) == 0U) { - int addr = GET_ADDR(to_push); +static void volkswagen_meb_rx_hook(const CANPacket_t *msg) { + if (GET_BUS(msg) == 0U) { + int addr = GET_ADDR(msg); // Update in-motion state by sampling wheel speeds if (addr == MSG_ESC_51) { - uint32_t fl = GET_BYTES(to_push, 8, 2); - uint32_t fr = GET_BYTES(to_push, 10, 2); - uint32_t rl = GET_BYTES(to_push, 12, 2); - uint32_t rr = GET_BYTES(to_push, 14, 2); + uint32_t fl = GET_BYTES(msg, 8, 2); + uint32_t fr = GET_BYTES(msg, 10, 2); + uint32_t rl = GET_BYTES(msg, 12, 2); + uint32_t rr = GET_BYTES(msg, 14, 2); vehicle_moving = (fl + fr + rl + rr) > 0U; @@ -51,8 +51,8 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // Signal: LH_EPS_03.EPS_Lenkmoment (absolute torque) // Signal: LH_EPS_03.EPS_VZ_Lenkmoment (direction) if (addr == MSG_LH_EPS_03) { - int torque_driver_new = GET_BYTES(to_push, 5, 2) & 0x1FFFU; - int sign = (GET_BYTE(to_push, 6) & 0x80U) >> 7; + int torque_driver_new = GET_BYTES(msg, 5, 2) & 0x1FFFU; + int sign = (GET_BYTE(msg, 6) & 0x80U) >> 7; if (sign == 1) { torque_driver_new *= -1; } @@ -60,9 +60,9 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { } if (addr == MSG_QFK_01) { - int current_curvature = GET_BYTES(to_push, 4, 2) & 0x7FFFU; + int current_curvature = GET_BYTES(msg, 4, 2) & 0x7FFFU; - bool current_curvature_sign = GET_BIT(to_push, 55U); + bool current_curvature_sign = GET_BIT(msg, 55U); if (current_curvature_sign) { current_curvature *= -1; } @@ -74,7 +74,7 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { if (addr == MSG_Motor_51) { // When using stock ACC, enter controls on rising edge of stock ACC engage, exit on disengage // Always exit controls on main switch off - int acc_status = (GET_BYTE(to_push, 11U) & 0x07U); + int acc_status = (GET_BYTE(msg, 11U) & 0x07U); bool cruise_engaged = (acc_status == 3) || (acc_status == 4) || (acc_status == 5); acc_main_on = cruise_engaged || (acc_status == 2); @@ -87,12 +87,12 @@ static void volkswagen_meb_rx_hook(const CANPacket_t *to_push) { // update brake pedal if (addr == MSG_MOTOR_14) { - brake_pressed = GET_BIT(to_push, 28U); + brake_pressed = GET_BIT(msg, 28U); } // update accel pedal if (addr == MSG_Motor_54) { - int accel_pedal_value = GET_BYTE(to_push, 21U) - 37U; + int accel_pedal_value = GET_BYTE(msg, 21U) - 37U; gas_pressed = accel_pedal_value != 0; } } From a8ca3a7f4ffc3b5fa5c5aa566634801b92b47271 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 20:38:30 -0400 Subject: [PATCH 643/653] adeeb's on another rampage --- opendbc/safety/modes/volkswagen_meb.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/safety/modes/volkswagen_meb.h b/opendbc/safety/modes/volkswagen_meb.h index e74b2be416e..5a457032074 100644 --- a/opendbc/safety/modes/volkswagen_meb.h +++ b/opendbc/safety/modes/volkswagen_meb.h @@ -32,7 +32,7 @@ static safety_config volkswagen_meb_init(uint16_t param) { } static void volkswagen_meb_rx_hook(const CANPacket_t *msg) { - if (GET_BUS(msg) == 0U) { + if (msg->bus == 0U) { int addr = GET_ADDR(msg); // Update in-motion state by sampling wheel speeds From e0734ceda00fdd52b506d09d323895d078b087ac Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 21:58:35 -0400 Subject: [PATCH 644/653] merge conflicts don't always bail ya out --- opendbc/car/volkswagen/values.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/values.py b/opendbc/car/volkswagen/values.py index 7a2f2b4a94a..5ef82a0106c 100644 --- a/opendbc/car/volkswagen/values.py +++ b/opendbc/car/volkswagen/values.py @@ -189,7 +189,7 @@ class VolkswagenFlags(IntFlag): # Static flags PQ = 2 - MEB = 4 + MEB = 8 @dataclass From 664c69cdb96ac96aae81dc391b110d5a3b9172fa Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:09:06 -0400 Subject: [PATCH 645/653] dashcam --- opendbc/car/volkswagen/interface.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index 4a177911523..56fa7373b29 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -49,6 +49,9 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, alp else: ret.networkLocation = NetworkLocation.fwdCamera + # In development, safety code not yet available + ret.dashcamOnly = True + else: # Set global MQB parameters safety_configs = [get_safety_config(structs.CarParams.SafetyModel.volkswagen)] From c91f33558ac217be0dfb1226b8b797860bcfdfd4 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:21:52 -0400 Subject: [PATCH 646/653] temp deactivate --- opendbc/car/tests/routes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/tests/routes.py b/opendbc/car/tests/routes.py index 92e3eec6f3f..439428b6bfa 100644 --- a/opendbc/car/tests/routes.py +++ b/opendbc/car/tests/routes.py @@ -255,7 +255,7 @@ class CarTestRoute(NamedTuple): CarTestRoute("ffcd23abbbd02219/2024-02-28--14-59-38", VOLKSWAGEN.VOLKSWAGEN_CADDY_MK3), CarTestRoute("cae14e88932eb364/2021-03-26--14-43-28", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # Stock ACC CarTestRoute("3cfdec54aa035f3f/2022-10-13--14-58-58", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # openpilot longitudinal - CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.VOLKSWAGEN_ID4_MK1), # FIXME: temporary, replace later + #CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.VOLKSWAGEN_ID4_MK1), # FIXME: temporary, replace later CarTestRoute("578742b26807f756|00000010--41ee3e5bec", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK6), CarTestRoute("58a7d3b707987d65/2021-03-25--17-26-37", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK7), CarTestRoute("4d134e099430fba2/2021-03-26--00-26-06", VOLKSWAGEN.VOLKSWAGEN_PASSAT_MK8), From c533330f7a1ad4a4964a9af96a5a6c89684ed965 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:44:29 -0400 Subject: [PATCH 647/653] Revert "temp deactivate" This reverts commit c91f33558ac217be0dfb1226b8b797860bcfdfd4. --- opendbc/car/tests/routes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/tests/routes.py b/opendbc/car/tests/routes.py index 439428b6bfa..92e3eec6f3f 100644 --- a/opendbc/car/tests/routes.py +++ b/opendbc/car/tests/routes.py @@ -255,7 +255,7 @@ class CarTestRoute(NamedTuple): CarTestRoute("ffcd23abbbd02219/2024-02-28--14-59-38", VOLKSWAGEN.VOLKSWAGEN_CADDY_MK3), CarTestRoute("cae14e88932eb364/2021-03-26--14-43-28", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # Stock ACC CarTestRoute("3cfdec54aa035f3f/2022-10-13--14-58-58", VOLKSWAGEN.VOLKSWAGEN_GOLF_MK7), # openpilot longitudinal - #CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.VOLKSWAGEN_ID4_MK1), # FIXME: temporary, replace later + CarTestRoute("17fbdc1cd49dc9af/00000027--ee57555e5b", VOLKSWAGEN.VOLKSWAGEN_ID4_MK1), # FIXME: temporary, replace later CarTestRoute("578742b26807f756|00000010--41ee3e5bec", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK6), CarTestRoute("58a7d3b707987d65/2021-03-25--17-26-37", VOLKSWAGEN.VOLKSWAGEN_JETTA_MK7), CarTestRoute("4d134e099430fba2/2021-03-26--00-26-06", VOLKSWAGEN.VOLKSWAGEN_PASSAT_MK8), From 7f8ef43a2ada1c00229e514367b7f4f8c5c2d5b7 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:44:46 -0400 Subject: [PATCH 648/653] typo fix --- opendbc/safety/modes/volkswagen_common.h | 1 - 1 file changed, 1 deletion(-) diff --git a/opendbc/safety/modes/volkswagen_common.h b/opendbc/safety/modes/volkswagen_common.h index b49d1ddfe36..09c3ac4c641 100644 --- a/opendbc/safety/modes/volkswagen_common.h +++ b/opendbc/safety/modes/volkswagen_common.h @@ -72,7 +72,6 @@ static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *msg) { crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; } else if (msg->addr == MSG_QFK_01) { crc ^= (uint8_t[]){0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}[counter]; - } else if (msg->addr == MSG_MOTOR_20) { } else if (msg->addr == MSG_MOTOR_20) { crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; } else if (msg->addr == MSG_GRA_ACC_01) { From 2063eccfbfd662ebf9afb7761dd407e6c5c7d346 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:49:21 -0400 Subject: [PATCH 649/653] will need a vEgoCluster signal for MEB --- opendbc/car/volkswagen/carstate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendbc/car/volkswagen/carstate.py b/opendbc/car/volkswagen/carstate.py index bbd29652c77..1d73b28b388 100644 --- a/opendbc/car/volkswagen/carstate.py +++ b/opendbc/car/volkswagen/carstate.py @@ -126,6 +126,7 @@ def update(self, can_parsers) -> structs.CarState: ret.carFaultedNonCritical = bool(cam_cp.vl["HCA_01"]["EA_Ruckfreigabe"]) or cam_cp.vl["HCA_01"]["EA_ACC_Sollstatus"] > 0 # EA drive_mode = True + ret.vEgoCluster = pt_cp.vl["Kombi_01"]["KBI_angez_Geschw"] * CV.KPH_TO_MS ret.gasPressed = pt_cp.vl["Motor_20"]["MO_Fahrpedalrohwert_01"] > 0 ret.brake = pt_cp.vl["ESP_05"]["ESP_Bremsdruck"] / 250.0 # FIXME: this is pressure in Bar, not sure what OP expects brake_pedal_pressed = bool(pt_cp.vl["Motor_14"]["MO_Fahrer_bremst"]) @@ -161,7 +162,6 @@ def update(self, can_parsers) -> structs.CarState: ret.rightBlinker = bool(pt_cp.vl["Blinkmodi_02"]["Comfort_Signal_Right"]) # Shared logic - ret.vEgoCluster = pt_cp.vl["Kombi_01"]["KBI_angez_Geschw"] * CV.KPH_TO_MS ret.steeringAngleDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradwinkel"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradwinkel"])] ret.steeringRateDeg = pt_cp.vl["LWI_01"]["LWI_Lenkradw_Geschw"] * (1, -1)[int(pt_cp.vl["LWI_01"]["LWI_VZ_Lenkradw_Geschw"])] From 2593883979450c6d4b04759a97c6ccfd79bc6a11 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Mon, 28 Jul 2025 22:52:40 -0400 Subject: [PATCH 650/653] we're gonna circle back to that --- opendbc/safety/modes/volkswagen_common.h | 23 --- opendbc/safety/modes/volkswagen_meb.h | 170 ----------------- opendbc/safety/safety.h | 4 - opendbc/safety/safety_declarations.h | 1 - opendbc/safety/tests/common.py | 3 +- opendbc/safety/tests/test_volkswagen_meb.py | 192 -------------------- 6 files changed, 1 insertion(+), 392 deletions(-) delete mode 100644 opendbc/safety/modes/volkswagen_meb.h delete mode 100755 opendbc/safety/tests/test_volkswagen_meb.py diff --git a/opendbc/safety/modes/volkswagen_common.h b/opendbc/safety/modes/volkswagen_common.h index 09c3ac4c641..495e2ad206b 100644 --- a/opendbc/safety/modes/volkswagen_common.h +++ b/opendbc/safety/modes/volkswagen_common.h @@ -17,26 +17,13 @@ bool volkswagen_resume_button_prev = false; #define MSG_LH_EPS_03 0x09FU // RX from EPS, for driver steering torque #define MSG_ESP_19 0x0B2U // RX from ABS, for wheel speeds -#define MSG_ESC_51 0x0FCU // RX, for wheel speeds -#define MSG_ESC_50 0x102U // RX, for yaw rate #define MSG_ESP_05 0x106U // RX from ABS, for brake switch state -#define MSG_Motor_51 0x10BU // RX for TSK state #define MSG_TSK_06 0x120U // RX from ECU, for ACC status from drivetrain coordinator #define MSG_MOTOR_20 0x121U // RX from ECU, for driver throttle input #define MSG_ACC_06 0x122U // TX by OP, ACC control instructions to the drivetrain coordinator #define MSG_HCA_01 0x126U // TX by OP, Heading Control Assist steering torque #define MSG_GRA_ACC_01 0x12BU // TX by OP, ACC control buttons for cancel/resume #define MSG_ACC_07 0x12EU // TX by OP, ACC control instructions to the drivetrain coordinator -#define MSG_VMM_02 0x139U // RX, for ESP hold management -#define MSG_QFK_01 0x13DU // RX, for steering angle -#define MSG_Motor_54 0x14CU // RX, for accel pedal -#define MSG_ACC_18 0x14DU // RX from ECU, for ACC status -#define MSG_EA_01 0x1A4U // TX, for EA mitigation -#define MSG_EA_02 0x1F0U // TX, for EA mitigation -#define MSG_EML_06 0x20AU // RX, for yaw rate -#define MSG_TA_01 0x26BU // TX for Travel Assist status -#define MSG_MEB_ACC_01 0x300U // RX from ECU, for ACC status -#define MSG_HCA_03 0x303U // TX by OP, Heading Control Assist steering torque #define MSG_ACC_02 0x30CU // TX by OP, ACC HUD data to the instrument cluster #define MSG_LDW_02 0x397U // TX by OP, Lane line recognition and text alerts #define MSG_MOTOR_14 0x3BEU // RX from ECU, for brake switch status @@ -70,20 +57,10 @@ static uint32_t volkswagen_mqb_meb_compute_crc(const CANPacket_t *msg) { crc ^= (uint8_t[]){0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07}[counter]; } else if (msg->addr == MSG_TSK_06) { crc ^= (uint8_t[]){0xC4, 0xE2, 0x4F, 0xE4, 0xF8, 0x2F, 0x56, 0x81, 0x9F, 0xE5, 0x83, 0x44, 0x05, 0x3F, 0x97, 0xDF}[counter]; - } else if (msg->addr == MSG_QFK_01) { - crc ^= (uint8_t[]){0x20, 0xCA, 0x68, 0xD5, 0x1B, 0x31, 0xE2, 0xDA, 0x08, 0x0A, 0xD4, 0xDE, 0x9C, 0xE4, 0x35, 0x5B}[counter]; } else if (msg->addr == MSG_MOTOR_20) { crc ^= (uint8_t[]){0xE9, 0x65, 0xAE, 0x6B, 0x7B, 0x35, 0xE5, 0x5F, 0x4E, 0xC7, 0x86, 0xA2, 0xBB, 0xDD, 0xEB, 0xB4}[counter]; } else if (msg->addr == MSG_GRA_ACC_01) { crc ^= (uint8_t[]){0x6A, 0x38, 0xB4, 0x27, 0x22, 0xEF, 0xE1, 0xBB, 0xF8, 0x80, 0x84, 0x49, 0xC7, 0x9E, 0x1E, 0x2B}[counter]; - } else if (msg->addr == MSG_ESC_51) { - crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; - } else if (msg->addr == MSG_Motor_54) { - crc ^= (uint8_t[]){0x16, 0x35, 0x59, 0x15, 0x9A, 0x2A, 0x97, 0xB8, 0x0E, 0x4E, 0x30, 0xCC, 0xB3, 0x07, 0x01, 0xAD}[counter]; - } else if (msg->addr == MSG_Motor_51) { - crc ^= (uint8_t[]){0x77, 0x5C, 0xA0, 0x89, 0x4B, 0x7C, 0xBB, 0xD6, 0x1F, 0x6C, 0x4F, 0xF6, 0x20, 0x2B, 0x43, 0xDD}[counter]; - } else if (msg->addr == MSG_MOTOR_14) { - crc ^= (uint8_t[]){0x1F, 0x28, 0xC6, 0x85, 0xE6, 0xF8, 0xB0, 0x19, 0x5B, 0x64, 0x35, 0x21, 0xE4, 0xF7, 0x9C, 0x24}[counter]; } else { // Undefined CAN message, CRC check expected to fail } diff --git a/opendbc/safety/modes/volkswagen_meb.h b/opendbc/safety/modes/volkswagen_meb.h deleted file mode 100644 index 239297a7dcb..00000000000 --- a/opendbc/safety/modes/volkswagen_meb.h +++ /dev/null @@ -1,170 +0,0 @@ -#pragma once - -#include "opendbc/safety/safety_declarations.h" -#include "opendbc/safety/modes/volkswagen_common.h" - - -static int volkswagen_steer_power_prev = 0; - - -static safety_config volkswagen_meb_init(uint16_t param) { - // Transmit of GRA_ACC_01 is allowed on bus 0 and 2 to keep compatibility with gateway and camera integration - static const CanMsg VOLKSWAGEN_MEB_STOCK_TX_MSGS[] = {{MSG_HCA_03, 0, 24, .check_relay=true}, {MSG_EA_01, 0, 8, .check_relay=false}, {MSG_EA_02, 0, 8, .check_relay=false}, {MSG_GRA_ACC_01, 0, 8, .check_relay=false}, - {MSG_GRA_ACC_01, 2, 8, .check_relay=false}, {MSG_LDW_02, 0, 8, .check_relay=false}}; - - static RxCheck volkswagen_meb_rx_checks[] = { - {.msg = {{MSG_LH_EPS_03, 0, 8, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_MOTOR_14, 0, 8, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, - {.msg = {{MSG_Motor_51, 0, 32, .max_counter = 15U, .frequency = 50U}, { 0 }, { 0 }}}, - {.msg = {{MSG_GRA_ACC_01, 0, 8, .max_counter = 15U, .frequency = 33U}, { 0 }, { 0 }}}, - {.msg = {{MSG_QFK_01, 0, 32, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_ESC_51, 0, 48, .max_counter = 15U, .frequency = 100U}, { 0 }, { 0 }}}, - {.msg = {{MSG_Motor_54, 0, 32, .max_counter = 15U, .frequency = 10U}, { 0 }, { 0 }}}, - }; - - volkswagen_set_button_prev = false; - volkswagen_resume_button_prev = false; - - UNUSED(param); - - gen_crc_lookup_table_8(0x2F, volkswagen_crc8_lut_8h2f); - return BUILD_SAFETY_CFG(volkswagen_meb_rx_checks, VOLKSWAGEN_MEB_STOCK_TX_MSGS); -} - -static void volkswagen_meb_rx_hook(const CANPacket_t *msg) { - if (msg->bus == 0U) { - // Update in-motion state by sampling wheel speeds - if (msg->addr == MSG_ESC_51) { - uint32_t fl = GET_BYTES(msg, 8, 2); - uint32_t fr = GET_BYTES(msg, 10, 2); - uint32_t rl = GET_BYTES(msg, 12, 2); - uint32_t rr = GET_BYTES(msg, 14, 2); - - vehicle_moving = (fl + fr + rl + rr) > 0U; - - UPDATE_VEHICLE_SPEED(((fr + rr + rl + fl) / 4.0) * 0.0075 / 3.6); - } - - // Update driver input torque samples - // Signal: LH_EPS_03.EPS_Lenkmoment (absolute torque) - // Signal: LH_EPS_03.EPS_VZ_Lenkmoment (direction) - if (msg->addr == MSG_LH_EPS_03) { - int torque_driver_new = GET_BYTES(msg, 5, 2) & 0x1FFFU; - int sign = (GET_BYTE(msg, 6) & 0x80U) >> 7; - if (sign == 1) { - torque_driver_new *= -1; - } - update_sample(&torque_driver, torque_driver_new); - } - - if (msg->addr == MSG_QFK_01) { - int current_curvature = GET_BYTES(msg, 4, 2) & 0x7FFFU; - - bool current_curvature_sign = GET_BIT(msg, 55U); - if (current_curvature_sign) { - current_curvature *= -1; - } - - update_sample(&angle_meas, current_curvature); - } - - // Update cruise state - if (msg->addr == MSG_Motor_51) { - // When using stock ACC, enter controls on rising edge of stock ACC engage, exit on disengage - // Always exit controls on main switch off - int acc_status = (GET_BYTE(msg, 11U) & 0x07U); - bool cruise_engaged = (acc_status == 3) || (acc_status == 4) || (acc_status == 5); - acc_main_on = cruise_engaged || (acc_status == 2); - - pcm_cruise_check(cruise_engaged); - - if (!acc_main_on) { - controls_allowed = false; - } - } - - // update brake pedal - if (msg->addr == MSG_MOTOR_14) { - brake_pressed = GET_BIT(msg, 28U); - } - - // update accel pedal - if (msg->addr == MSG_Motor_54) { - int accel_pedal_value = GET_BYTE(msg, 21U) - 37U; - gas_pressed = accel_pedal_value != 0; - } - } -} - -// TODO: move STEER constants somewhere sensible -#define STEER_POWER_MAX 50 -#define STEER_POWER_MIN 20 -#define DRIVER_INPUT_MIN 60 -#define DRIVER_INPUT_MAX 300 -#define STEER_POWER_STEP 2 - -static bool volkswagen_curvature_cmd_checks(int steer_power, int steer_curvature, int steer_req) { - bool violation = false; - - if (steer_req == 0) { - violation |= (steer_power != 0); - violation |= (steer_curvature != 0); - } else { - if (controls_allowed) { - violation |= steer_power > STEER_POWER_MAX; - violation |= steer_power < (volkswagen_steer_power_prev - STEER_POWER_STEP); - violation |= steer_power > (volkswagen_steer_power_prev + STEER_POWER_STEP); - } else { - bool disengaging_power = steer_power == (volkswagen_steer_power_prev - STEER_POWER_STEP); - violation |= volkswagen_steer_power_prev == 0; - violation |= (steer_power > 0) && !disengaging_power; - } - } - - return violation; -} - -static bool volkswagen_meb_tx_hook(const CANPacket_t *msg) { - bool tx = true; - - // Safety check for HCA_03 Heading Control Assist curvature - if (msg->addr == MSG_HCA_03) { - int steer_curvature = GET_BYTES(msg, 3, 2) & 0x7FFFU; - - bool sign = GET_BIT(msg, 39U); - if (!sign) { - steer_curvature *= -1; - } - - bool steer_req = ((GET_BYTE(msg, 1) >> 4) & 0x7U) == 4U; - int steer_power = GET_BYTE(msg, 2U) * 0.4; - - if (volkswagen_curvature_cmd_checks(steer_power, steer_curvature, steer_req)) { - // tx = false; - tx = true; - volkswagen_steer_power_prev = 0; - } else { - volkswagen_steer_power_prev = steer_power; - } - } - - // FORCE CANCEL: ensuring that only the cancel button press is sent when controls are off. - // This avoids unintended engagements while still allowing resume spam - if ((msg->addr == MSG_GRA_ACC_01) && !controls_allowed) { - // disallow resume and set: bits 16 and 19 - if ((GET_BYTE(msg, 2) & 0x9U) != 0U) { - tx = false; - } - } - - return tx; -} - -const safety_hooks volkswagen_meb_hooks = { - .init = volkswagen_meb_init, - .rx = volkswagen_meb_rx_hook, - .tx = volkswagen_meb_tx_hook, - .get_counter = volkswagen_mqb_meb_get_counter, - .get_checksum = volkswagen_mqb_meb_get_checksum, - .compute_checksum = volkswagen_mqb_meb_compute_crc, -}; diff --git a/opendbc/safety/safety.h b/opendbc/safety/safety.h index 01d529a5f0e..3db48197362 100644 --- a/opendbc/safety/safety.h +++ b/opendbc/safety/safety.h @@ -28,7 +28,6 @@ // CAN-FD only safety modes #ifdef CANFD #include "opendbc/safety/modes/hyundai_canfd.h" -#include "opendbc/safety/modes/volkswagen_meb.h" #endif uint32_t GET_BYTES(const CANPacket_t *msg, int start, int len) { @@ -411,9 +410,6 @@ int set_safety_hooks(uint16_t mode, uint16_t param) { {SAFETY_TESLA, &tesla_hooks}, #ifdef CANFD {SAFETY_HYUNDAI_CANFD, &hyundai_canfd_hooks}, -#ifdef ALLOW_DEBUG - {SAFETY_VOLKSWAGEN_MEB, &volkswagen_meb_hooks}, -#endif #endif #ifdef ALLOW_DEBUG {SAFETY_SUBARU_PREGLOBAL, &subaru_preglobal_hooks}, diff --git a/opendbc/safety/safety_declarations.h b/opendbc/safety/safety_declarations.h index 72cd9308e5b..bb265586c2b 100644 --- a/opendbc/safety/safety_declarations.h +++ b/opendbc/safety/safety_declarations.h @@ -341,4 +341,3 @@ extern const safety_hooks toyota_hooks; extern const safety_hooks volkswagen_mqb_hooks; extern const safety_hooks volkswagen_pq_hooks; extern const safety_hooks rivian_hooks; -extern const safety_hooks volkswagen_meb_hooks; diff --git a/opendbc/safety/tests/common.py b/opendbc/safety/tests/common.py index 157ea2832b0..75b8b4e9c71 100644 --- a/opendbc/safety/tests/common.py +++ b/opendbc/safety/tests/common.py @@ -894,8 +894,7 @@ def test_tx_hook_on_wrong_safety_mode(self): continue if {attr, current_test}.issubset({'TestHyundaiLongitudinalSafety', 'TestHyundaiLongitudinalSafetyCameraSCC', 'TestHyundaiSafetyFCEVLong'}): continue - if {attr, current_test}.issubset({'TestVolkswagenMqbSafety', 'TestVolkswagenMqbStockSafety', 'TestVolkswagenMqbLongSafety', - 'TestVolkswagenMebSafety', 'TestVolkswagenMebStockSafety',}): + if {attr, current_test}.issubset({'TestVolkswagenMqbSafety', 'TestVolkswagenMqbStockSafety', 'TestVolkswagenMqbLongSafety'}): continue # overlapping TX addrs, but they're not actuating messages for either car diff --git a/opendbc/safety/tests/test_volkswagen_meb.py b/opendbc/safety/tests/test_volkswagen_meb.py deleted file mode 100755 index 105048dee04..00000000000 --- a/opendbc/safety/tests/test_volkswagen_meb.py +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/env python3 -import unittest -from opendbc.car.structs import CarParams -from opendbc.safety.tests.libsafety import libsafety_py -import opendbc.safety.tests.common as common -from opendbc.safety.tests.common import CANPackerPanda - -MSG_LH_EPS_03 = 0x9F # RX from EPS, for driver steering torque -MSG_ESC_51 = 0xFC # RX, for wheel speeds -MSG_Motor_54 = 0x14C # RX, for accel pedal -MSG_ESC_50 = 0x102 # RX, for yaw rate -MSG_VMM_02 = 0x139 # RX, for ESP hold management -MSG_EA_01 = 0x1A4 # TX, for EA mitigation -MSG_EA_02 = 0x1F0 # TX, for EA mitigation -MSG_EML_06 = 0x20A # RX, for yaw rate -MSG_HCA_03 = 0x303 # TX by OP, Heading Control Assist steering torque -MSG_QFK_01 = 0x13D # RX, for steering angle -MSG_MEB_ACC_01 = 0x300 # RX from ECU, for ACC status -MSG_ACC_18 = 0x14D # RX from ECU, for ACC status -MSG_GRA_ACC_01 = 0x12B # TX by OP, ACC control buttons for cancel/resume -MSG_MOTOR_14 = 0x3BE # RX from ECU, for brake switch status -MSG_LDW_02 = 0x397 # TX by OP, Lane line recognition and text alerts -MSG_Motor_51 = 0x10B # RX for TSK state -MSG_TA_01 = 0x26B # TX for Travel Assist status - - -class TestVolkswagenMebSafety(common.PandaCarSafetyTest): - STANDSTILL_THRESHOLD = 0 - RELAY_MALFUNCTION_ADDRS = {0: (MSG_HCA_03,)} - - DRIVER_TORQUE_ALLOWANCE = 60 - DRIVER_TORQUE_MAX = 300 - STEER_POWER_MIN = 20 - STEER_POWER_MAX = 50 - STEER_POWER_STEP = 2 - - @classmethod - def setUpClass(cls): - if cls.__name__ == "TestVolkswagenMebSafety": - cls.packer = None - cls.safety = None - raise unittest.SkipTest - - def _speed_msg(self, speed): - values = {"%s_Radgeschw" % s: speed for s in ["HL", "HR", "VL", "VR"]} - return self.packer.make_can_msg_panda("ESC_51", 0, values) - - # Brake pedal switch - def _motor_14_msg(self, brake): - values = {"MO_Fahrer_bremst": brake} - return self.packer.make_can_msg_panda("Motor_14", 0, values) - - def _user_brake_msg(self, brake): - return self._motor_14_msg(brake) - - # Driver throttle input - def _user_gas_msg(self, gas): - values = {"Accelerator_Pressure": gas} - return self.packer.make_can_msg_panda("Motor_54", 0, values) - - # ACC engagement status - def _tsk_status_msg(self, enable, main_switch=True): - if main_switch: - tsk_status = 3 if enable else 2 - else: - tsk_status = 0 - values = {"TSK_Status": tsk_status} - return self.packer.make_can_msg_panda("Motor_51", 0, values) - - def _pcm_status_msg(self, enable): - return self._tsk_status_msg(enable) - - # Driver steering input torque - def _torque_driver_msg(self, torque): - values = {"EPS_Lenkmoment": abs(torque), "EPS_VZ_Lenkmoment": torque < 0} - return self.packer.make_can_msg_panda("LH_EPS_03", 0, values) - - # Current curvature - def _vehicle_curvature_msg(self, curvature): - values = { - "Curvature": abs(curvature), - "Curvature_VZ": curvature < 0, - } - return self.packer.make_can_msg_panda("QFK_01", 0, values) - - # Steering actuation - def _curvature_actuation_msg(self, lat_active=False, power=0, curvature=0): - values = { - "Curvature": abs(curvature), - "Curvature_VZ": curvature < 0, - "Power": power, - "RequestStatus": 4 if lat_active else 2, - "HighSendRate": lat_active, - } - return self.packer.make_can_msg_panda("HCA_03", 0, values) - - # Cruise control buttons - def _gra_acc_01_msg(self, cancel=0, resume=0, _set=0, bus=0): - values = {"GRA_Abbrechen": cancel, "GRA_Tip_Setzen": _set, "GRA_Tip_Wiederaufnahme": resume} - return self.packer.make_can_msg_panda("GRA_ACC_01", bus, values) - - def test_torque_measurements(self): - self._rx(self._torque_driver_msg(50)) - self._rx(self._torque_driver_msg(-50)) - self._rx(self._torque_driver_msg(0)) - self._rx(self._torque_driver_msg(0)) - self._rx(self._torque_driver_msg(0)) - self._rx(self._torque_driver_msg(0)) - - self.assertEqual(-50, self.safety.get_torque_driver_min()) - self.assertEqual(50, self.safety.get_torque_driver_max()) - - self._rx(self._torque_driver_msg(0)) - self.assertEqual(0, self.safety.get_torque_driver_max()) - self.assertEqual(-50, self.safety.get_torque_driver_min()) - - self._rx(self._torque_driver_msg(0)) - self.assertEqual(0, self.safety.get_torque_driver_max()) - self.assertEqual(0, self.safety.get_torque_driver_min()) - - def test_vehicle_curvature_message(self): - self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=0.01))) - self.assertTrue(self._rx(self._vehicle_curvature_msg(curvature=-0.01))) - - # TODO: test against driver input torque - def test_lateral_control_transitions(self): - test_sequence = [ - # The test order is meaningful, for testing certain violations and for ramp-down on exiting controls - # (controls_active, steer_req, steer_power, steer_curvature, comment) - (False, False, 0, 0 , "Normal inactive"), - (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), - (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), - (True, True, self.STEER_POWER_STEP * 4, 0.00001, "Excessive ramp-up rate"), - (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Failure to return to zero before steering again"), - (False, False, 0, 0 , "Reset with normal inactive"), - (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), - (False, True, self.STEER_POWER_STEP * 1, 0.00001, "Power/curvature without lat control active"), - (False, False, 0, 0, "Normal inactive"), - (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), - (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), - (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Active ramp-up"), - (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Excessive ramp-down rate"), - (False, False, 0, 0, "Normal inactive"), - (True, True, self.STEER_POWER_STEP * 1, 0.00001, "Transition to active"), - (True, True, self.STEER_POWER_STEP * 2, 0.00001, "Active ramp-up"), - (True, True, self.STEER_POWER_STEP * 3, 0.00001, "Active ramp-up"), - (True, True, self.STEER_POWER_STEP * 4, 0.00001, "Active ramp-up"), - (False, True, self.STEER_POWER_STEP * 3, 0.00001, "Soft disengage on controls exit"), - (False, True, self.STEER_POWER_STEP * 1, 0.00001, "Excessive ramp-down rate on controls exit"), - (False, False, 0, 0, "Normal inactive"), - ] - - last_power = 0 - for controls_allowed, lat_active, power, curvature, comment in test_sequence: - min_valid_power = max(last_power - self.STEER_POWER_STEP, 0) - max_valid_power = min(last_power + self.STEER_POWER_STEP, self.STEER_POWER_MAX) - power_valid = min_valid_power <= power <= max_valid_power - - well_formed_inactive = not lat_active and power == 0 and curvature == 0 - well_formed_active = controls_allowed and lat_active and power_valid - well_formed_disengaging = lat_active and not controls_allowed and power == max(0, last_power - self.STEER_POWER_STEP) - - should_allow = well_formed_active or well_formed_inactive or well_formed_disengaging - self.safety.set_controls_allowed(controls_allowed) - self.assertEqual(should_allow, self._tx(self._curvature_actuation_msg(lat_active, power, curvature)), - f"{comment=} {controls_allowed=} {lat_active=} {power=} {curvature=}") - last_power = power if should_allow else 0 - - -class TestVolkswagenMebStockSafety(TestVolkswagenMebSafety): - TX_MSGS = [[MSG_HCA_03, 0], [MSG_LDW_02, 0], [MSG_GRA_ACC_01, 0], [MSG_GRA_ACC_01, 2], [MSG_EA_01, 0], [MSG_EA_02, 0]] - FWD_BLACKLISTED_ADDRS = {2: [MSG_HCA_03, MSG_LDW_02, MSG_EA_01, MSG_EA_02]} - FWD_BUS_LOOKUP = {0: 2, 2: 0} - - def setUp(self): - self.packer = CANPackerPanda("vw_meb") - self.safety = libsafety_py.libsafety - self.safety.set_safety_hooks(CarParams.SafetyModel.volkswagenMeb, 0) - self.safety.init_tests() - - def test_spam_cancel_safety_check(self): - self.safety.set_controls_allowed(0) - self.assertTrue(self._tx(self._gra_acc_01_msg(cancel=1))) - self.assertFalse(self._tx(self._gra_acc_01_msg(resume=1))) - self.assertFalse(self._tx(self._gra_acc_01_msg(_set=1))) - # do not block resume if we are engaged already - self.safety.set_controls_allowed(1) - self.assertTrue(self._tx(self._gra_acc_01_msg(resume=1))) - - -if __name__ == "__main__": - unittest.main() From d6b451bc2ac18a97802179b5dcce251539c8b59b Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 29 Jul 2025 01:37:22 -0400 Subject: [PATCH 651/653] fix scope --- opendbc/car/volkswagen/carcontroller.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index 740033e4f87..ddff4666f79 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -95,9 +95,9 @@ def update(self, CC, CS, now_nanos): if not hca_enabled: self.hca_frame_timer_running = 0 - self.eps_timer_soft_disable_alert = self.hca_frame_timer_running > self.CCP.STEER_TIME_ALERT / DT_CTRL - self.apply_torque_last = apply_torque - can_sends.append(self.CCS.create_steering_control(self.packer_pt, self.CAN.pt, apply_torque, hca_enabled)) + self.eps_timer_soft_disable_alert = self.hca_frame_timer_running > self.CCP.STEER_TIME_ALERT / DT_CTRL + self.apply_torque_last = apply_torque + can_sends.append(self.CCS.create_steering_control(self.packer_pt, self.CAN.pt, apply_torque, hca_enabled)) if self.CP.flags & VolkswagenFlags.STOCK_HCA_PRESENT: # Pacify VW Emergency Assist driver inactivity detection by changing its view of driver steering input torque From a9d2bab81819bdc3a63b1337f976b4fe76c5ea50 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 29 Jul 2025 01:44:21 -0400 Subject: [PATCH 652/653] don't use a safety that isn't there yet --- opendbc/car/volkswagen/interface.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/opendbc/car/volkswagen/interface.py b/opendbc/car/volkswagen/interface.py index c403082c2a4..87c6ffa5047 100644 --- a/opendbc/car/volkswagen/interface.py +++ b/opendbc/car/volkswagen/interface.py @@ -39,7 +39,8 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, alp elif ret.flags & VolkswagenFlags.MEB: # Set global MEB parameters - safety_configs = [get_safety_config(structs.CarParams.SafetyModel.volkswagenMeb)] + ret.dashcamOnly = True # In development, safety code not yet available + safety_configs = [get_safety_config(structs.CarParams.SafetyModel.noOutput)] ret.enableBsm = 0x24C in fingerprint[0] # MEB_Side_Assist_01 ret.steerControlType = structs.CarParams.SteerControlType.angle ret.transmissionType = TransmissionType.automatic @@ -49,8 +50,6 @@ def _get_params(ret: structs.CarParams, candidate: CAR, fingerprint, car_fw, alp else: ret.networkLocation = NetworkLocation.fwdCamera - # In development, safety code not yet available - ret.dashcamOnly = True else: # Set global MQB parameters From 776aec71b4fa14b987aebb135bc3470cfa3161a8 Mon Sep 17 00:00:00 2001 From: Jason Young Date: Tue, 29 Jul 2025 01:46:55 -0400 Subject: [PATCH 653/653] concise --- opendbc/car/volkswagen/carcontroller.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/opendbc/car/volkswagen/carcontroller.py b/opendbc/car/volkswagen/carcontroller.py index ddff4666f79..b4990831f9e 100644 --- a/opendbc/car/volkswagen/carcontroller.py +++ b/opendbc/car/volkswagen/carcontroller.py @@ -13,15 +13,16 @@ class CarController(CarControllerBase): def __init__(self, dbc_names, CP): super().__init__(dbc_names, CP) - self.CCP = CarControllerParams(CP) self.CAN = CanBus(CP) + self.CCP = CarControllerParams(CP) + self.packer_pt = CANPacker(dbc_names[Bus.pt]) + + self.CCS = mqbcan if CP.flags & VolkswagenFlags.PQ: self.CCS = pqcan elif CP.flags & VolkswagenFlags.MEB: self.CCS = mebcan - else: - self.CCS = mqbcan - self.packer_pt = CANPacker(dbc_names[Bus.pt]) + self.aeb_available = not CP.flags & VolkswagenFlags.PQ self.openpilot_longitudinal = self.CP.openpilotLongitudinalControl and not self.CP.flags & VolkswagenFlags.MEB