Skip to content

Commit

Permalink
add rivian safety test
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasloetkolben committed Feb 5, 2025
1 parent 01c575c commit bf1448d
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions tests/safety/test_rivian.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
#!/usr/bin/env python3
import unittest
from panda import Panda
from panda.tests.libpanda import libpanda_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda


class TestRivianSafety(common.PandaCarSafetyTest, common.DriverTorqueSteeringSafetyTest):

TX_MSGS = [[0x120, 0]]
STANDSTILL_THRESHOLD = 0
RELAY_MALFUNCTION_ADDRS = {0: (0x120,)}
FWD_BLACKLISTED_ADDRS = {2: [0x120]}
FWD_BUS_LOOKUP = {0: 2, 2: 0}

MAX_RATE_UP = 8
MAX_RATE_DOWN = 8
MAX_TORQUE = 350

MAX_RT_DELTA = 300
RT_INTERVAL = 250000

DRIVER_TORQUE_ALLOWANCE = 15
DRIVER_TORQUE_FACTOR = 1

def setUp(self):
self.packer = CANPackerPanda("rivian_can")
self.safety = libpanda_py.libpanda
self.safety.set_safety_hooks(Panda.SAFETY_RIVIAN, 0)
self.safety.init_tests()

def _torque_driver_msg(self, torque):
values = {"EPAS_SystemStatus": torque}
return self.packer.make_can_msg_panda("EPAS_TorsionBarTorque", 0, values)

def _torque_cmd_msg(self, torque, steer_req=1):
values = {"ACM_lkaStrToqReq": torque, "ACM_lkaActToi": steer_req}
return self.packer.make_can_msg_panda("ACM_lkaHbaCmd", 0, values)

def _speed_msg(self, speed):
values = {"ESP_Status": speed * 3.6}
return self.packer.make_can_msg_panda("ESP_Vehicle_Speed", 0, values)

def _user_brake_msg(self, brake):
values = {"iBESP2_BrakePedalApplied": brake}
return self.packer.make_can_msg_panda("iBESP2", 0, values)

def _user_gas_msg(self, gas):
values = {"VDM_AcceleratorPedalPosition": gas}
return self.packer.make_can_msg_panda("VDM_PropStatus", 0, values)

def _pcm_status_msg(self, enable):
values = {"ACM_FeatureStatus": enable}
return self.packer.make_can_msg_panda("ACM_Status", 2, values)

if __name__ == "__main__":
unittest.main()

0 comments on commit bf1448d

Please sign in to comment.