common function to set up each test

fix honda
This commit is contained in:
Shane Smiskol
2022-03-26 00:55:36 -07:00
parent e45b94a8e2
commit fe4e71b3c6
14 changed files with 60 additions and 118 deletions

View File

@@ -10,12 +10,14 @@ from panda.tests.safety import libpandasafety_py
MAX_WRONG_COUNTERS = 5
class ALTERNATIVE_EXPERIENCE:
DEFAULT = 0
DISABLE_DISENGAGE_ON_GAS = 1
DISABLE_STOCK_AEB = 2
RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX = 8
def package_can_msg(msg):
addr, _, dat, bus = msg
ret = libpandasafety_py.ffi.new('CANPacket_t *')
@@ -27,9 +29,18 @@ def package_can_msg(msg):
return ret
def set_up_test(cls, dbc, safety_mode, safety_param):
cls.packer = CANPackerPanda(dbc)
cls.safety = libpandasafety_py.libpandasafety
cls.safety.set_safety_hooks(safety_mode, safety_param)
cls.safety.init_tests_honda()
def make_msg(bus, addr, length=8):
return package_can_msg([addr, 0, b'\x00' * length, bus])
class CANPackerPanda(CANPacker):
def make_can_msg_panda(self, name_or_addr, bus, values, counter=-1, fix_checksum=None):
msg = self.make_can_msg(name_or_addr, bus, values, counter=-1)
@@ -37,6 +48,7 @@ class CANPackerPanda(CANPacker):
msg = fix_checksum(msg)
return package_can_msg(msg)
class PandaSafetyTestBase(unittest.TestCase):
@classmethod
def setUpClass(cls):

View File

@@ -56,7 +56,7 @@ void set_timer(uint32_t t);
int safety_rx_hook(CANPacket_t *to_send);
int safety_tx_hook(CANPacket_t *to_push);
int safety_fwd_hook(int bus_num, CANPacket_t *to_fwd);
int set_safety_hooks(uint16_t mode, int16_t param);
int set_safety_hooks(uint16_t mode, int16_t param);
void safety_tick_current_rx_checks();
bool addr_checks_valid();

View File

@@ -1,9 +1,9 @@
#!/usr/bin/env python3
import unittest
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
class TestChryslerSafety(common.PandaSafetyTest, common.TorqueSteeringSafetyTest):
TX_MSGS = [[571, 0], [658, 0], [678, 0]]
@@ -26,10 +26,7 @@ class TestChryslerSafety(common.PandaSafetyTest, common.TorqueSteeringSafetyTest
cnt_brake = 0
def setUp(self):
self.packer = CANPackerPanda("chrysler_pacifica_2017_hybrid")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_CHRYSLER, 0)
self.safety.init_tests()
set_up_test(self, "chrysler_pacifica_2017_hybrid", Panda.SAFETY_CHRYSLER, 0)
def _button_msg(self, cancel):
values = {"ACC_CANCEL": cancel}

View File

@@ -3,9 +3,8 @@ import unittest
from typing import Dict, List
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, ALTERNATIVE_EXPERIENCE
from panda.tests.safety.common import CANPackerPanda, ALTERNATIVE_EXPERIENCE, set_up_test
MAX_RATE_UP = 7
MAX_RATE_DOWN = 17
@@ -38,11 +37,8 @@ class TestGmSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP: Dict[int, int] = {}
def setUp(self):
self.packer = CANPackerPanda("gm_global_a_powertrain_generated")
set_up_test(self, "gm_global_a_powertrain_generated", Panda.SAFETY_GM, 0)
self.packer_chassis = CANPackerPanda("gm_global_a_chassis")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_GM, 0)
self.safety.init_tests()
# override these tests from PandaSafetyTest, GM uses button enable
def test_disable_control_allowed_from_cruise(self):

View File

@@ -4,9 +4,8 @@ import numpy as np
from typing import Optional
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, make_msg, MAX_WRONG_COUNTERS, ALTERNATIVE_EXPERIENCE
from panda.tests.safety.common import make_msg, set_up_test, MAX_WRONG_COUNTERS, ALTERNATIVE_EXPERIENCE
class Btn:
NONE = 0
@@ -295,9 +294,7 @@ class TestHondaNidecSafetyBase(HondaBase):
raise unittest.SkipTest
def setUp(self):
self.packer = CANPackerPanda("honda_civic_touring_2016_can_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, 0)
set_up_test(self, "honda_civic_touring_2016_can_generated", Panda.SAFETY_HONDA_NIDEC, 0)
self.safety.init_tests_honda()
# Honda gas gains are the different
@@ -399,9 +396,7 @@ class TestHondaNidecAltSafety(TestHondaNidecSafety):
Covers the Honda Nidec safety mode with alt SCM messages
"""
def setUp(self):
self.packer = CANPackerPanda("acura_ilx_2016_can_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, Panda.FLAG_HONDA_NIDEC_ALT)
set_up_test(self, "acura_ilx_2016_can_generated", Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_NIDEC)
self.safety.init_tests_honda()
def _acc_state_msg(self, main_on):
@@ -420,9 +415,7 @@ class TestHondaNidecAltInterceptorSafety(TestHondaNidecSafety, common.Intercepto
Covers the Honda Nidec safety mode with alt SCM messages and gas interceptor
"""
def setUp(self):
self.packer = CANPackerPanda("acura_ilx_2016_can_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, Panda.FLAG_HONDA_NIDEC_ALT)
set_up_test(self, "acura_ilx_2016_can_generated", Panda.SAFETY_HONDA_NIDEC, Panda.FLAG_HONDA_NIDEC_ALT)
self.safety.init_tests_honda()
def _acc_state_msg(self, main_on):
@@ -436,7 +429,6 @@ class TestHondaNidecAltInterceptorSafety(TestHondaNidecSafety, common.Intercepto
return self.packer.make_can_msg_panda("SCM_BUTTONS", self.PT_BUS, values)
# ********************* Honda Bosch **********************
@@ -454,10 +446,6 @@ class TestHondaBoschSafetyBase(HondaBase):
cls.safety = None
raise unittest.SkipTest
def setUp(self):
self.packer = CANPackerPanda("honda_accord_2018_can_generated")
self.safety = libpandasafety_py.libpandasafety
def _alt_brake_msg(self, brake):
values = {"BRAKE_PRESSED": brake, "COUNTER": self.cnt_brake % 4}
self.__class__.cnt_brake += 1
@@ -492,8 +480,7 @@ class TestHondaBoschSafety(HondaPcmEnableBase, TestHondaBoschSafetyBase):
Covers the Honda Bosch safety mode with stock longitudinal
"""
def setUp(self):
super().setUp()
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, 0)
set_up_test(self, "honda_accord_2018_can_generated", Panda.SAFETY_HONDA_BOSCH, 0)
self.safety.init_tests_honda()
def test_spam_cancel_safety_check(self):
@@ -519,9 +506,7 @@ class TestHondaBoschLongSafety(HondaButtonEnableBase, TestHondaBoschSafetyBase):
FWD_BLACKLISTED_ADDRS = {2: [0xE4, 0xE5, 0x33D, 0x33DA, 0x33DB]}
def setUp(self):
super().setUp()
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, Panda.FLAG_HONDA_BOSCH_LONG)
self.safety.init_tests_honda()
set_up_test(self, "honda_accord_2018_can_generated", Panda.SAFETY_HONDA_BOSCH, Panda.FLAG_HONDA_BOSCH_LONG)
def _send_gas_brake_msg(self, gas, accel):
values = {

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, make_msg
from panda.tests.safety.common import make_msg, set_up_test
MAX_RATE_UP = 3
MAX_RATE_DOWN = 7
@@ -19,12 +18,14 @@ DRIVER_TORQUE_FACTOR = 2
MAX_ACCEL = 2.0
MIN_ACCEL = -3.5
class Buttons:
NONE = 0
RESUME = 1
SET = 2
CANCEL = 4
# 4 bit checkusm used in some hyundai messages
# lives outside the can packer because we never send this msg
def checksum(msg):
@@ -73,10 +74,7 @@ class TestHyundaiSafety(common.PandaSafetyTest):
cnt_cruise = 0
def setUp(self):
self.packer = CANPackerPanda("hyundai_kia_generic")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, 0)
self.safety.init_tests()
set_up_test(self, "hyundai_kia_generic", Panda.SAFETY_HYUNDAI, 0)
def _button_msg(self, buttons):
values = {"CF_Clu_CruiseSwState": buttons}
@@ -225,18 +223,12 @@ class TestHyundaiSafety(common.PandaSafetyTest):
class TestHyundaiLegacySafety(TestHyundaiSafety):
def setUp(self):
self.packer = CANPackerPanda("hyundai_kia_generic")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 0)
self.safety.init_tests()
set_up_test(self, "hyundai_kia_generic", Panda.SAFETY_HYUNDAI_LEGACY, 0)
class TestHyundaiLegacySafetyEV(TestHyundaiSafety):
def setUp(self):
self.packer = CANPackerPanda("hyundai_kia_generic")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 1)
self.safety.init_tests()
set_up_test(self, "hyundai_kia_generic", Panda.SAFETY_HYUNDAI_LEGACY, 1)
def _user_gas_msg(self, gas):
values = {"Accel_Pedal_Pos": gas}
@@ -245,24 +237,19 @@ class TestHyundaiLegacySafetyEV(TestHyundaiSafety):
class TestHyundaiLegacySafetyHEV(TestHyundaiSafety):
def setUp(self):
self.packer = CANPackerPanda("hyundai_kia_generic")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 2)
self.safety.init_tests()
set_up_test(self, "hyundai_kia_generic", Panda.SAFETY_HYUNDAI_LEGACY, 2)
def _user_gas_msg(self, gas):
values = {"CR_Vcu_AccPedDep_Pos": gas}
return self.packer.make_can_msg_panda("E_EMS11", 0, values, fix_checksum=checksum)
class TestHyundaiLongitudinalSafety(TestHyundaiSafety):
TX_MSGS = [[832, 0], [1265, 0], [1157, 0], [1056, 0], [1057, 0], [1290, 0], [905, 0], [1186, 0], [909, 0], [1155, 0], [2000, 0]]
cnt_button = 0
def setUp(self):
self.packer = CANPackerPanda("hyundai_kia_generic")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, Panda.FLAG_HYUNDAI_LONG)
self.safety.init_tests()
set_up_test(self, "hyundai_kia_generic", Panda.SAFETY_HYUNDAI, Panda.FLAG_HYUNDAI_LONG)
# override these tests from PandaSafetyTest, hyundai longitudinal uses button enable
def test_disable_control_allowed_from_cruise(self):
@@ -357,6 +344,5 @@ class TestHyundaiLongitudinalSafety(TestHyundaiSafety):
self.assertTrue(self.safety.get_relay_malfunction())
if __name__ == "__main__":
unittest.main()

View File

@@ -1,9 +1,8 @@
#!/usr/bin/env python3
import unittest
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
MAX_RATE_UP = 10
MAX_RATE_DOWN = 25
@@ -26,10 +25,7 @@ class TestMazdaSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("mazda_2017")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_MAZDA, 0)
self.safety.init_tests()
set_up_test(self, "mazda_2017", Panda.SAFETY_MAZDA, 0)
def _torque_meas_msg(self, torque):
values = {"STEER_TORQUE_MOTOR": torque}

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
ANGLE_DELTA_BP = [0., 5., 15.]
ANGLE_DELTA_V = [5., .8, .15] # windup limit
@@ -26,10 +25,7 @@ class TestNissanSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("nissan_x_trail_2017")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_NISSAN, 0)
self.safety.init_tests()
set_up_test(self, "nissan_x_trail_2017", Panda.SAFETY_NISSAN, 0)
def _angle_meas_msg(self, angle):
values = {"STEER_ANGLE": angle}
@@ -141,13 +137,11 @@ class TestNissanSafety(common.PandaSafetyTest):
tx = self._tx(self._acc_button_cmd(**args))
self.assertEqual(tx, should_tx)
class TestNissanLeafSafety(TestNissanSafety):
def setUp(self):
self.packer = CANPackerPanda("nissan_leaf_2018")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_NISSAN, 0)
self.safety.init_tests()
set_up_test(self, "nissan_leaf_2018", Panda.SAFETY_NISSAN, 0)
def _user_brake_msg(self, brake):
values = {"USER_BRAKE_PRESSED": brake}

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
MAX_RATE_UP = 50
MAX_RATE_DOWN = 70
@@ -32,10 +31,7 @@ class TestSubaruSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("subaru_global_2017_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_SUBARU, 0)
self.safety.init_tests()
set_up_test(self, "subaru_global_2017_generated", Panda.SAFETY_SUBARU, 0)
def _set_prev_torque(self, t):
self.safety.set_desired_torque_last(t)

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
MAX_RATE_UP = 50
MAX_RATE_DOWN = 70
@@ -28,10 +27,7 @@ class TestSubaruLegacySafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("subaru_outback_2015_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_SUBARU_LEGACY, 0)
self.safety.init_tests()
set_up_test(self, "subaru_outback_2015_generated", Panda.SAFETY_SUBARU_LEGACY, 0)
def _set_prev_torque(self, t):
self.safety.set_desired_torque_last(t)

View File

@@ -3,8 +3,7 @@ import unittest
import numpy as np
from panda import Panda
import panda.tests.safety.common as common
from panda.tests.safety import libpandasafety_py
from panda.tests.safety.common import CANPackerPanda
from panda.tests.safety.common import set_up_test
ANGLE_DELTA_BP = [0., 5., 15.]
ANGLE_DELTA_V = [5., .8, .15] # windup limit
@@ -13,6 +12,7 @@ ANGLE_DELTA_VU = [5., 3.5, 0.4] # unwind limit
MAX_ACCEL = 2.0
MIN_ACCEL = -3.5
class CONTROL_LEVER_STATE:
DN_1ST = 32
UP_1ST = 16
@@ -22,9 +22,11 @@ class CONTROL_LEVER_STATE:
FWD = 1
IDLE = 0
def sign(a):
return 1 if a > 0 else -1
class TestTeslaSafety(common.PandaSafetyTest):
STANDSTILL_THRESHOLD = 0
GAS_PRESSED_THRESHOLD = 3
@@ -32,7 +34,6 @@ class TestTeslaSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = None
raise unittest.SkipTest
def _angle_meas_msg(self, angle):
@@ -89,10 +90,7 @@ class TestTeslaSteeringSafety(TestTeslaSafety):
FWD_BLACKLISTED_ADDRS = {2: [0x488]}
def setUp(self):
self.packer = CANPackerPanda("tesla_can")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, 0)
self.safety.init_tests()
set_up_test(self, "tesla_can", Panda.SAFETY_TESLA, 0)
def test_angle_cmd_when_enabled(self):
# when controls are allowed, angle cmd rate limit is enforced
@@ -187,16 +185,15 @@ class TestTeslaLongitudinalSafety(TestTeslaSafety):
send = (MIN_ACCEL <= min_accel <= MAX_ACCEL) and (MIN_ACCEL <= max_accel <= MAX_ACCEL)
self.assertEqual(self._tx(self._long_control_msg(10, acc_val=4, accel_limits=[min_accel, max_accel])), send)
class TestTeslaChassisLongitudinalSafety(TestTeslaLongitudinalSafety):
TX_MSGS = [[0x488, 0], [0x45, 0], [0x45, 2], [0x2B9, 0]]
RELAY_MALFUNCTION_ADDR = 0x488
FWD_BLACKLISTED_ADDRS = {2: [0x2B9, 0x488]}
def setUp(self):
self.packer = CANPackerPanda("tesla_can")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, Panda.FLAG_TESLA_LONG_CONTROL)
self.safety.init_tests()
set_up_test(self, "tesla_can", Panda.SAFETY_TESLA, Panda.FLAG_TESLA_LONG_CONTROL)
class TestTeslaPTLongitudinalSafety(TestTeslaLongitudinalSafety):
TX_MSGS = [[0x2BF, 0]]
@@ -204,10 +201,8 @@ class TestTeslaPTLongitudinalSafety(TestTeslaLongitudinalSafety):
FWD_BLACKLISTED_ADDRS = {2: [0x2BF]}
def setUp(self):
self.packer = CANPackerPanda("tesla_powertrain")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, Panda.FLAG_TESLA_LONG_CONTROL | Panda.FLAG_TESLA_POWERTRAIN)
self.safety.init_tests()
set_up_test(self, "tesla_powertrain", Panda.SAFETY_TESLA, Panda.FLAG_TESLA_LONG_CONTROL | Panda.FLAG_TESLA_POWERTRAIN)
if __name__ == "__main__":
unittest.main()

View File

@@ -3,13 +3,13 @@ import unittest
import numpy as np
import random
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, make_msg, ALTERNATIVE_EXPERIENCE
from panda.tests.safety.common import make_msg, set_up_test, ALTERNATIVE_EXPERIENCE
MAX_ACCEL = 2.0
MIN_ACCEL = -3.5
class TestToyotaSafety(common.PandaSafetyTest, common.InterceptorSafetyTest,
common.TorqueSteeringSafetyTest):
@@ -34,10 +34,7 @@ class TestToyotaSafety(common.PandaSafetyTest, common.InterceptorSafetyTest,
EPS_SCALE = 0.73
def setUp(self):
self.packer = CANPackerPanda("toyota_nodsu_pt_generated")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, 73)
self.safety.init_tests()
set_up_test(self, "toyota_nodsu_pt_generated", Panda.SAFETY_TOYOTA, 73)
def _torque_meas_msg(self, torque):
values = {"STEER_TORQUE_EPS": (torque/self.EPS_SCALE)}

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, MAX_WRONG_COUNTERS
from panda.tests.safety.common import MAX_WRONG_COUNTERS, set_up_test
MAX_RATE_UP = 4
MAX_RATE_DOWN = 10
@@ -253,10 +252,7 @@ class TestVolkswagenMqbStockSafety(TestVolkswagenMqbSafety):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("vw_mqb_2010")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_MQB, 0)
self.safety.init_tests()
set_up_test(self, "vw_mqb_2010", Panda.SAFETY_VOLKSWAGEN_MQB, 0)
def test_spam_cancel_safety_check(self):
self.safety.set_controls_allowed(0)

View File

@@ -2,9 +2,8 @@
import unittest
import numpy as np
from panda import Panda
from panda.tests.safety import libpandasafety_py
import panda.tests.safety.common as common
from panda.tests.safety.common import CANPackerPanda, MAX_WRONG_COUNTERS
from panda.tests.safety.common import MAX_WRONG_COUNTERS, set_up_test
MAX_RATE_UP = 4
MAX_RATE_DOWN = 10
@@ -48,10 +47,7 @@ class TestVolkswagenPqSafety(common.PandaSafetyTest):
FWD_BUS_LOOKUP = {0: 2, 2: 0}
def setUp(self):
self.packer = CANPackerPanda("vw_golf_mk4")
self.safety = libpandasafety_py.libpandasafety
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_PQ, 0)
self.safety.init_tests()
set_up_test(self, "vw_golf_mk4", Panda.SAFETY_VOLKSWAGEN_PQ, 0)
def _set_prev_torque(self, t):
self.safety.set_desired_torque_last(t)