Skip to content

Commit 40ac4ea

Browse files
authored
Rivian: fix fuzzy test_models failures (#1929)
* fix possible gear exception * fix cruise state mismatch * clean up
1 parent b426c1c commit 40ac4ea

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

opendbc/car/rivian/carstate.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
from opendbc.car.rivian.values import DBC, GEAR_MAP
66
from opendbc.car.common.conversions import Conversions as CV
77

8+
GearShifter = structs.CarState.GearShifter
9+
810

911
class CarState(CarStateBase):
1012
def __init__(self, CP):
@@ -62,7 +64,7 @@ def update(self, can_parsers) -> structs.CarState:
6264
cp.vl["VDM_AdasSts"]["VDM_AdasFaultStatus"] in (2, 3)) # 2=Cntr_Fault, 3=Imps_Cmd
6365

6466
# Gear
65-
ret.gearShifter = GEAR_MAP[int(cp.vl["VDM_PropStatus"]["VDM_Prndl_Status"])]
67+
ret.gearShifter = GEAR_MAP.get(int(cp.vl["VDM_PropStatus"]["VDM_Prndl_Status"]), GearShifter.unknown)
6668

6769
# Doors
6870
ret.doorOpen = (cp_adas.vl["IndicatorLights"]["RearDriverDoor"] != 2 or

opendbc/car/rivian/values.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,13 @@ class CAR(Platforms):
4444
]
4545
)
4646

47-
GEAR_MAP = [
48-
structs.CarState.GearShifter.unknown,
49-
structs.CarState.GearShifter.park,
50-
structs.CarState.GearShifter.reverse,
51-
structs.CarState.GearShifter.neutral,
52-
structs.CarState.GearShifter.drive,
53-
]
47+
GEAR_MAP = {
48+
0: structs.CarState.GearShifter.unknown,
49+
1: structs.CarState.GearShifter.park,
50+
2: structs.CarState.GearShifter.reverse,
51+
3: structs.CarState.GearShifter.neutral,
52+
4: structs.CarState.GearShifter.drive,
53+
}
5454

5555

5656
class CarControllerParams:

opendbc/safety/safety/safety_rivian.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@ static void rivian_rx_hook(const CANPacket_t *to_push) {
3939
if (bus == 2) {
4040
// Cruise state
4141
if (addr == 0x100) {
42-
pcm_cruise_check(GET_BIT(to_push, 21U));
42+
const int feature_status = GET_BYTE(to_push, 2) >> 5U;
43+
pcm_cruise_check(feature_status == 1);
4344
}
4445
}
4546
}

0 commit comments

Comments
 (0)