mirror of
https://github.com/infiniteCable2/panda.git
synced 2026-02-18 09:13:52 +08:00
Move safety constants to opendbc (#2145)
* move to opendbc * all passing * do the rest * fix * and another * order * and update ref to master
This commit is contained in:
@@ -37,7 +37,7 @@ RUN pip3 install --break-system-packages --no-cache-dir $PYTHONPATH/panda/[dev]
|
||||
|
||||
# TODO: this should be a "pip install" or not even in this repo at all
|
||||
RUN git config --global --add safe.directory $PYTHONPATH/panda
|
||||
ENV OPENDBC_REF="0eab9bf26e1b36678db4f198986091c82e538967"
|
||||
ENV OPENDBC_REF="950e7b34efa64d2ad41df3300652661fbae06f57"
|
||||
RUN cd /tmp/ && \
|
||||
git clone --depth 1 https://github.com/commaai/opendbc opendbc_repo && \
|
||||
cd opendbc_repo && git fetch origin $OPENDBC_REF && git checkout FETCH_HEAD && rm -rf .git/ && \
|
||||
|
||||
@@ -5,7 +5,7 @@ from .python.canhandle import CanHandle # noqa: F401
|
||||
from .python.utils import logger # noqa: F401
|
||||
from .python import (Panda, PandaDFU, isotp, # noqa: F401
|
||||
pack_can_buffer, unpack_can_buffer, calculate_checksum,
|
||||
DLC_TO_LEN, LEN_TO_DLC, ALTERNATIVE_EXPERIENCE, CANPACKET_HEAD_SIZE)
|
||||
DLC_TO_LEN, LEN_TO_DLC, CANPACKET_HEAD_SIZE)
|
||||
|
||||
|
||||
# panda jungle
|
||||
|
||||
@@ -5,6 +5,7 @@ import contextlib
|
||||
import random
|
||||
from termcolor import cprint
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda, PandaJungle
|
||||
|
||||
NUM_PANDAS_PER_TEST = 1
|
||||
@@ -88,7 +89,7 @@ def can_loopback(sender):
|
||||
def test_loopback():
|
||||
# disable safety modes
|
||||
for panda in pandas:
|
||||
panda.set_safety_mode(Panda.SAFETY_ELM327 if FOR_RELEASE_BUILDS else Panda.SAFETY_ALLOUTPUT)
|
||||
panda.set_safety_mode(Safety.SAFETY_ELM327 if FOR_RELEASE_BUILDS else Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# perform loopback with jungle as a sender
|
||||
can_loopback(jungle)
|
||||
@@ -99,7 +100,7 @@ def test_loopback():
|
||||
|
||||
# enable safety modes
|
||||
for panda in pandas:
|
||||
panda.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
panda.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
|
||||
#################################################################
|
||||
############################# MAIN ##############################
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
import os
|
||||
import random
|
||||
from opendbc.safety import Safety
|
||||
from panda import PandaJungle
|
||||
|
||||
def get_test_string():
|
||||
@@ -9,7 +10,7 @@ def get_test_string():
|
||||
if __name__ == "__main__":
|
||||
p = PandaJungle()
|
||||
|
||||
p.set_safety_mode(PandaJungle.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
print("Spamming all buses...")
|
||||
while True:
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
from tqdm import tqdm
|
||||
from panda import Panda
|
||||
from opendbc.car.carlog import carlog
|
||||
from opendbc.car.uds import UdsClient, MessageTimeoutError, NegativeResponseError, InvalidSubAddressError, \
|
||||
SESSION_TYPE, DATA_IDENTIFIER_TYPE
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
@@ -63,7 +64,7 @@ if __name__ == "__main__":
|
||||
exit()
|
||||
|
||||
panda = Panda(serial=args.serial)
|
||||
panda.set_safety_mode(Panda.SAFETY_ELM327, 1 if args.no_obd else 0)
|
||||
panda.set_safety_mode(Safety.SAFETY_ELM327, 1 if args.no_obd else 0)
|
||||
print("querying addresses ...")
|
||||
with tqdm(addrs) as t:
|
||||
for addr in t:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
import time
|
||||
import struct
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
from hexdump import hexdump
|
||||
from panda.python.isotp import isotp_send, isotp_recv
|
||||
@@ -30,7 +31,7 @@ def get_supported_pids():
|
||||
|
||||
if __name__ == "__main__":
|
||||
panda = Panda()
|
||||
panda.set_safety_mode(Panda.SAFETY_ELM327)
|
||||
panda.set_safety_mode(Safety.SAFETY_ELM327)
|
||||
panda.can_clear(0)
|
||||
|
||||
# 09 02 = Get VIN
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import binascii
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def tesla_tester():
|
||||
@@ -13,7 +14,7 @@ def tesla_tester():
|
||||
# Now set the panda from its default of SAFETY_SILENT (read only) to SAFETY_ALLOUTPUT
|
||||
# Careful, as this will let us send any CAN messages we want (which could be very bad!)
|
||||
print("Setting Panda to output mode...")
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# BDY 0x248 is the MCU_commands message, which includes folding mirrors, opening the trunk, frunk, setting the cars lock state and more.
|
||||
# For our test, we will edit the 3rd byte, which is MCU_lockRequest. 0x01 will lock, 0x02 will unlock:
|
||||
@@ -26,7 +27,7 @@ def tesla_tester():
|
||||
|
||||
#Back to safety...
|
||||
print("Disabling output on Panda...")
|
||||
p.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
p.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
|
||||
print("Reading VIN from 0x568. This is painfully slow and can take up to 3 minutes (1 minute per message; 3 messages needed for full VIN)...")
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@ import binascii
|
||||
from functools import wraps, partial
|
||||
from itertools import accumulate
|
||||
|
||||
from opendbc.safety import Safety
|
||||
|
||||
from .base import BaseHandle
|
||||
from .constants import FW_PATH, McuType
|
||||
from .dfu import PandaDFU
|
||||
@@ -101,43 +103,8 @@ ensure_health_packet_version = partial(ensure_version, "health", "HEALTH_PACKET_
|
||||
|
||||
|
||||
|
||||
class ALTERNATIVE_EXPERIENCE:
|
||||
DEFAULT = 0
|
||||
DISABLE_DISENGAGE_ON_GAS = 1
|
||||
DISABLE_STOCK_AEB = 2
|
||||
RAISE_LONGITUDINAL_LIMITS_TO_ISO_MAX = 8
|
||||
ALLOW_AEB = 16
|
||||
|
||||
class Panda:
|
||||
|
||||
# matches cereal.car.CarParams.SafetyModel
|
||||
SAFETY_SILENT = 0
|
||||
SAFETY_HONDA_NIDEC = 1
|
||||
SAFETY_TOYOTA = 2
|
||||
SAFETY_ELM327 = 3
|
||||
SAFETY_GM = 4
|
||||
SAFETY_HONDA_BOSCH_GIRAFFE = 5
|
||||
SAFETY_FORD = 6
|
||||
SAFETY_HYUNDAI = 8
|
||||
SAFETY_CHRYSLER = 9
|
||||
SAFETY_TESLA = 10
|
||||
SAFETY_SUBARU = 11
|
||||
SAFETY_MAZDA = 13
|
||||
SAFETY_NISSAN = 14
|
||||
SAFETY_VOLKSWAGEN_MQB = 15
|
||||
SAFETY_ALLOUTPUT = 17
|
||||
SAFETY_GM_ASCM = 18
|
||||
SAFETY_NOOUTPUT = 19
|
||||
SAFETY_HONDA_BOSCH = 20
|
||||
SAFETY_VOLKSWAGEN_PQ = 21
|
||||
SAFETY_SUBARU_PREGLOBAL = 22
|
||||
SAFETY_HYUNDAI_LEGACY = 23
|
||||
SAFETY_HYUNDAI_COMMUNITY = 24
|
||||
SAFETY_STELLANTIS = 25
|
||||
SAFETY_FAW = 26
|
||||
SAFETY_BODY = 27
|
||||
SAFETY_HYUNDAI_CANFD = 28
|
||||
|
||||
SERIAL_DEBUG = 0
|
||||
SERIAL_ESP = 1
|
||||
SERIAL_LIN1 = 2
|
||||
@@ -747,7 +714,7 @@ class Panda:
|
||||
def set_power_save(self, power_save_enabled=0):
|
||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xe7, int(power_save_enabled), 0, b'')
|
||||
|
||||
def set_safety_mode(self, mode=SAFETY_SILENT, param=0):
|
||||
def set_safety_mode(self, mode=Safety.SAFETY_SILENT, param=0):
|
||||
self._handle.controlWrite(Panda.REQUEST_OUT, 0xdc, mode, param, b'')
|
||||
|
||||
def set_obd(self, obd):
|
||||
|
||||
@@ -9,6 +9,7 @@ import os
|
||||
import time
|
||||
import random
|
||||
import argparse
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def get_test_string():
|
||||
@@ -47,8 +48,8 @@ def run_test(sleep_duration):
|
||||
raise Exception("Connect white/grey and black panda to run this test!")
|
||||
|
||||
# disable safety modes
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# test health packet
|
||||
print("black panda health", black_panda.health())
|
||||
@@ -62,9 +63,9 @@ def run_test(sleep_duration):
|
||||
print("Number of cycles:", counter, "Non-zero bus errors:", nonzero_bus_errors, "Zero bus errors:", zero_bus_errors, "Content errors:", content_errors)
|
||||
|
||||
# Toggle relay
|
||||
black_panda.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
time.sleep(1)
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import time
|
||||
import random
|
||||
import argparse
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def get_test_string():
|
||||
@@ -48,8 +49,8 @@ def run_test(sleep_duration):
|
||||
raise Exception("Connect white/grey and black panda to run this test!")
|
||||
|
||||
# disable safety modes
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# test health packet
|
||||
print("black panda health", black_panda.health())
|
||||
@@ -69,9 +70,9 @@ def run_test(sleep_duration):
|
||||
|
||||
if (time.time() - temp_start_time) > 3600 * 6:
|
||||
# Toggle relay
|
||||
black_panda.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
time.sleep(1)
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
time.sleep(1)
|
||||
temp_start_time = time.time()
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import time
|
||||
import random
|
||||
import argparse
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def get_test_string():
|
||||
@@ -50,8 +51,8 @@ def run_test(sleep_duration):
|
||||
raise Exception("Connect white/grey and black panda to run this test!")
|
||||
|
||||
# disable safety modes
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
other_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# test health packet
|
||||
print("black panda health", black_panda.health())
|
||||
@@ -60,7 +61,7 @@ def run_test(sleep_duration):
|
||||
# test black -> other
|
||||
while True:
|
||||
# Switch on relay
|
||||
black_panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
time.sleep(0.05)
|
||||
|
||||
if not test_buses(black_panda, other_panda, (0, False, [0])):
|
||||
@@ -68,7 +69,7 @@ def run_test(sleep_duration):
|
||||
raise Exception("Open error")
|
||||
|
||||
# Switch off relay
|
||||
black_panda.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
black_panda.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
time.sleep(0.05)
|
||||
|
||||
if not test_buses(black_panda, other_panda, (0, False, [0, 2])):
|
||||
|
||||
@@ -4,6 +4,7 @@ import time
|
||||
import threading
|
||||
from typing import Any
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
JUNGLE = "JUNGLE" in os.environ
|
||||
@@ -30,9 +31,9 @@ if __name__ == "__main__":
|
||||
raise Exception("Connect two pandas to perform this test!")
|
||||
sender = Panda(serials[0])
|
||||
receiver = Panda(serials[1]) # type: ignore
|
||||
receiver.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
receiver.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
sender.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# Start transmisson
|
||||
threading.Thread(target=flood_tx, args=(sender,)).start()
|
||||
|
||||
@@ -4,6 +4,7 @@ import time
|
||||
from collections import defaultdict
|
||||
import binascii
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
# fake
|
||||
@@ -16,7 +17,7 @@ def can_printer():
|
||||
time.sleep(1)
|
||||
|
||||
p.can_clear(0xFFFF)
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
start = sec_since_boot()
|
||||
lp = sec_since_boot()
|
||||
|
||||
@@ -3,6 +3,7 @@ import os
|
||||
import time
|
||||
import random
|
||||
from collections import defaultdict
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda, calculate_checksum, DLC_TO_LEN
|
||||
from panda import PandaJungle
|
||||
from panda.tests.hitl.helpers import time_many_sends
|
||||
@@ -44,14 +45,14 @@ def panda_init(serial, enable_canfd=False, enable_non_iso=False):
|
||||
p.set_can_data_speed_kbps(bus, 2000)
|
||||
if enable_non_iso:
|
||||
p.set_canfd_non_iso(bus, True)
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
return p
|
||||
|
||||
def test_canfd_throughput(p, p_recv=None):
|
||||
two_pandas = p_recv is not None
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
if two_pandas:
|
||||
p_recv.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p_recv.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
# enable output mode
|
||||
else:
|
||||
p.set_can_loopback(True)
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
#!/usr/bin/env python3
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
# This script is intended to be used in conjunction with the echo_loopback_test.py test script from panda jungle.
|
||||
# It sends a reversed response back for every message received containing b"test".
|
||||
if __name__ == "__main__":
|
||||
p = Panda()
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
p.set_power_save(False)
|
||||
|
||||
while True:
|
||||
|
||||
@@ -10,6 +10,7 @@ import time
|
||||
import threading
|
||||
from collections import deque
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def lin_checksum(dat):
|
||||
@@ -61,7 +62,7 @@ class ELMCarSimulator():
|
||||
self.__on = on
|
||||
|
||||
def start(self):
|
||||
self.panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
self.panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
if self.__lin_enable:
|
||||
self.__lin_monitor_thread.start()
|
||||
if self.__can_enable:
|
||||
|
||||
@@ -2,6 +2,7 @@ import time
|
||||
import pytest
|
||||
|
||||
from opendbc.car.hyundai.values import HyundaiSafetyFlags
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
|
||||
@@ -37,9 +38,9 @@ def test_hw_type(p):
|
||||
def test_heartbeat(p, panda_jungle):
|
||||
panda_jungle.set_ignition(True)
|
||||
# TODO: add more cases here once the tests aren't super slow
|
||||
p.set_safety_mode(mode=Panda.SAFETY_HYUNDAI, param=HyundaiSafetyFlags.FLAG_HYUNDAI_LONG)
|
||||
p.set_safety_mode(mode=Safety.SAFETY_HYUNDAI, param=HyundaiSafetyFlags.FLAG_HYUNDAI_LONG)
|
||||
p.send_heartbeat()
|
||||
assert p.health()['safety_mode'] == Panda.SAFETY_HYUNDAI
|
||||
assert p.health()['safety_mode'] == Safety.SAFETY_HYUNDAI
|
||||
assert p.health()['safety_param'] == HyundaiSafetyFlags.FLAG_HYUNDAI_LONG
|
||||
|
||||
# shouldn't do anything once we're in a car safety mode
|
||||
@@ -49,7 +50,7 @@ def test_heartbeat(p, panda_jungle):
|
||||
|
||||
h = p.health()
|
||||
assert h['heartbeat_lost']
|
||||
assert h['safety_mode'] == Panda.SAFETY_SILENT
|
||||
assert h['safety_mode'] == Safety.SAFETY_SILENT
|
||||
assert h['safety_param'] == 0
|
||||
assert h['controls_allowed'] == 0
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import time
|
||||
from flaky import flaky
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
from panda.tests.hitl.helpers import time_many_sends
|
||||
|
||||
def test_can_loopback(p):
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
p.set_can_loopback(True)
|
||||
|
||||
for bus in (0, 1, 2):
|
||||
@@ -30,7 +31,7 @@ def test_can_loopback(p):
|
||||
def test_reliability(p):
|
||||
MSG_COUNT = 100
|
||||
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
p.set_can_loopback(True)
|
||||
p.set_can_speed_kbps(0, 1000)
|
||||
|
||||
@@ -60,7 +61,7 @@ def test_reliability(p):
|
||||
@flaky(max_runs=6, min_passes=1)
|
||||
def test_throughput(p):
|
||||
# enable output mode
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# enable CAN loopback mode
|
||||
p.set_can_loopback(True)
|
||||
|
||||
@@ -6,7 +6,7 @@ import threading
|
||||
from flaky import flaky
|
||||
from collections import defaultdict
|
||||
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.hitl.conftest import PandaGroup
|
||||
from panda.tests.hitl.helpers import time_many_sends, get_random_can_messages, clear_can_buffers
|
||||
|
||||
@@ -27,7 +27,7 @@ def test_send_recv(p, panda_jungle):
|
||||
print(f"two pandas bus {bus}, 100 messages at speed {speed:4d}, comp speed is {comp_kbps:7.2f}, {saturation_pct:6.2f}%")
|
||||
|
||||
# Run tests in both directions
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
test(p, panda_jungle)
|
||||
test(panda_jungle, p)
|
||||
|
||||
@@ -84,7 +84,7 @@ def test_latency(p, panda_jungle):
|
||||
.format(bus, num_messages, speed, average_latency, average_comp_kbps, average_saturation_pct))
|
||||
|
||||
# Run tests in both directions
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
test(p, panda_jungle)
|
||||
test(panda_jungle, p)
|
||||
|
||||
@@ -126,12 +126,12 @@ def test_gen2_loopback(p, panda_jungle):
|
||||
print("Bus:", bus, "address:", addr, "OBD:", obd, "OK")
|
||||
|
||||
# Run tests in both directions
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
test(p, panda_jungle)
|
||||
test(panda_jungle, p)
|
||||
|
||||
# Test extended frame address with ELM327 mode
|
||||
p.set_safety_mode(Panda.SAFETY_ELM327)
|
||||
p.set_safety_mode(Safety.SAFETY_ELM327)
|
||||
test(p, panda_jungle, 0x18DB33F1)
|
||||
test(panda_jungle, p, 0x18DB33F1)
|
||||
|
||||
@@ -153,7 +153,7 @@ def test_bulk_write(p, panda_jungle):
|
||||
packet += [[0xaa, msg, 0], [0xaa, msg, 1], [0xaa, msg, 2]] * NUM_MESSAGES_PER_BUS
|
||||
|
||||
# Disable timeout
|
||||
panda.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
panda.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
panda.can_send_many(packet, timeout=0)
|
||||
print(f"Done sending {4 * NUM_MESSAGES_PER_BUS} messages!", time.monotonic())
|
||||
print(panda.health())
|
||||
@@ -175,7 +175,7 @@ def test_bulk_write(p, panda_jungle):
|
||||
raise Exception("Did not receive all messages!")
|
||||
|
||||
def test_message_integrity(p):
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
p.set_can_loopback(True)
|
||||
for i in range(250):
|
||||
sent_msgs = defaultdict(set)
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import time
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
|
||||
def test_safety_nooutput(p):
|
||||
p.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
p.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
p.set_can_loopback(True)
|
||||
|
||||
# send a message on bus 0
|
||||
@@ -20,10 +21,10 @@ def test_safety_nooutput(p):
|
||||
|
||||
def test_canfd_safety_modes(p):
|
||||
# works on all pandas
|
||||
p.set_safety_mode(Panda.SAFETY_TOYOTA)
|
||||
assert p.health()['safety_mode'] == Panda.SAFETY_TOYOTA
|
||||
p.set_safety_mode(Safety.SAFETY_TOYOTA)
|
||||
assert p.health()['safety_mode'] == Safety.SAFETY_TOYOTA
|
||||
|
||||
# shouldn't be able to set a CAN-FD safety mode on non CAN-FD panda
|
||||
p.set_safety_mode(Panda.SAFETY_HYUNDAI_CANFD)
|
||||
expected_mode = Panda.SAFETY_HYUNDAI_CANFD if p.get_type() in Panda.H7_DEVICES else Panda.SAFETY_SILENT
|
||||
p.set_safety_mode(Safety.SAFETY_HYUNDAI_CANFD)
|
||||
expected_mode = Safety.SAFETY_HYUNDAI_CANFD if p.get_type() in Panda.H7_DEVICES else Safety.SAFETY_SILENT
|
||||
assert p.health()['safety_mode'] == expected_mode
|
||||
|
||||
@@ -2,6 +2,7 @@ import time
|
||||
import pytest
|
||||
import itertools
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
from panda.tests.hitl.conftest import PandaGroup
|
||||
|
||||
@@ -19,7 +20,7 @@ def test_harness_status(p, panda_jungle):
|
||||
# between the tests.
|
||||
for ignition, orientation in itertools.product([True, False], [Panda.HARNESS_STATUS_NC, Panda.HARNESS_STATUS_NORMAL, Panda.HARNESS_STATUS_FLIPPED]):
|
||||
print()
|
||||
p.set_safety_mode(Panda.SAFETY_ELM327)
|
||||
p.set_safety_mode(Safety.SAFETY_ELM327)
|
||||
panda_jungle.set_harness_orientation(orientation)
|
||||
panda_jungle.set_ignition(ignition)
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ import random
|
||||
import argparse
|
||||
from itertools import permutations
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def get_test_string():
|
||||
@@ -25,7 +26,7 @@ def run_test_w_pandas(pandas, sleep_duration):
|
||||
print("H", h)
|
||||
|
||||
for hh in h:
|
||||
hh.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
hh.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# test both directions
|
||||
for ho in permutations(list(range(len(h))), r=2):
|
||||
|
||||
@@ -7,6 +7,7 @@ import itertools
|
||||
import threading
|
||||
from typing import Any
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
JUNGLE = "JUNGLE" in os.environ
|
||||
@@ -44,9 +45,9 @@ if __name__ == "__main__":
|
||||
raise Exception("Connect two pandas to perform this test!")
|
||||
sender = Panda(serials[0])
|
||||
receiver = Panda(serials[1])
|
||||
receiver.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
receiver.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
sender.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
sender.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
# Start transmisson
|
||||
threading.Thread(target=flood_tx, args=(sender,)).start()
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
#!/usr/bin/env python
|
||||
import time
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
p = Panda()
|
||||
|
||||
while True:
|
||||
p.set_safety_mode(Panda.SAFETY_TOYOTA)
|
||||
p.set_safety_mode(Safety.SAFETY_TOYOTA)
|
||||
p.send_heartbeat()
|
||||
print("ON")
|
||||
time.sleep(1)
|
||||
p.set_safety_mode(Panda.SAFETY_NOOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_NOOUTPUT)
|
||||
p.send_heartbeat()
|
||||
print("OFF")
|
||||
time.sleep(1)
|
||||
|
||||
@@ -6,7 +6,7 @@ import numpy as np
|
||||
from collections.abc import Callable
|
||||
|
||||
from opendbc.can.packer import CANPacker # pylint: disable=import-error
|
||||
from panda import ALTERNATIVE_EXPERIENCE
|
||||
from opendbc.safety import ALTERNATIVE_EXPERIENCE
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
|
||||
MAX_WRONG_COUNTERS = 5
|
||||
|
||||
@@ -3,7 +3,7 @@ import unittest
|
||||
|
||||
import panda.tests.safety.common as common
|
||||
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
|
||||
@@ -15,7 +15,7 @@ class TestBody(common.PandaSafetyTest):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("comma_body")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_BODY, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_BODY, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _motors_data_msg(self, speed_l, speed_r):
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import unittest
|
||||
|
||||
from opendbc.car.chrysler.values import ChryslerSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -29,7 +29,7 @@ class TestChryslerSafety(common.PandaCarSafetyTest, common.MotorTorqueSteeringSa
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("chrysler_pacifica_2017_hybrid_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_CHRYSLER, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_CHRYSLER, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _button_msg(self, cancel=False, resume=False):
|
||||
@@ -91,7 +91,7 @@ class TestChryslerRamDTSafety(TestChryslerSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("chrysler_ram_dt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_CHRYSLER, ChryslerSafetyFlags.FLAG_CHRYSLER_RAM_DT)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_CHRYSLER, ChryslerSafetyFlags.FLAG_CHRYSLER_RAM_DT)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _speed_msg(self, speed):
|
||||
@@ -115,7 +115,7 @@ class TestChryslerRamHDSafety(TestChryslerSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("chrysler_ram_hd_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_CHRYSLER, ChryslerSafetyFlags.FLAG_CHRYSLER_RAM_HD)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_CHRYSLER, ChryslerSafetyFlags.FLAG_CHRYSLER_RAM_HD)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _speed_msg(self, speed):
|
||||
|
||||
@@ -3,7 +3,7 @@ import unittest
|
||||
|
||||
import panda.tests.safety.common as common
|
||||
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ class TestNoOutput(TestDefaultRxHookBase):
|
||||
|
||||
def setUp(self):
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_NOOUTPUT, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_NOOUTPUT, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class TestSilent(TestNoOutput):
|
||||
|
||||
def setUp(self):
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_SILENT, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_SILENT, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ class TestAllOutput(TestDefaultRxHookBase):
|
||||
|
||||
def setUp(self):
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_ALLOUTPUT, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_ALLOUTPUT, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def test_spam_can_buses(self):
|
||||
@@ -65,7 +65,7 @@ class TestAllOutputPassthrough(TestAllOutput):
|
||||
|
||||
def setUp(self):
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_ALLOUTPUT, 1)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_ALLOUTPUT, 1)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ import unittest
|
||||
|
||||
import panda.tests.safety.common as common
|
||||
|
||||
from panda import DLC_TO_LEN, Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda import DLC_TO_LEN
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
from panda.tests.safety.test_defaults import TestDefaultRxHookBase
|
||||
|
||||
@@ -18,7 +19,7 @@ class TestElm327(TestDefaultRxHookBase):
|
||||
|
||||
def setUp(self):
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_ELM327, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_ELM327, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def test_tx_hook(self):
|
||||
|
||||
@@ -6,7 +6,7 @@ import unittest
|
||||
import panda.tests.safety.common as common
|
||||
from opendbc.car.ford.values import FordSafetyFlags
|
||||
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
|
||||
@@ -366,7 +366,7 @@ class TestFordCANFDStockSafety(TestFordSafetyBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("ford_lincoln_base_pt")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_FORD, FordSafetyFlags.FLAG_FORD_CANFD)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_FORD, FordSafetyFlags.FLAG_FORD_CANFD)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -443,7 +443,7 @@ class TestFordLongitudinalSafety(TestFordLongitudinalSafetyBase):
|
||||
self.packer = CANPackerPanda("ford_lincoln_base_pt")
|
||||
self.safety = libpanda_py.libpanda
|
||||
# Make sure we enforce long safety even without long flag for CAN
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_FORD, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_FORD, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -458,7 +458,7 @@ class TestFordCANFDLongitudinalSafety(TestFordLongitudinalSafetyBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("ford_lincoln_base_pt")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_FORD, FordSafetyFlags.FLAG_FORD_LONG_CONTROL | FordSafetyFlags.FLAG_FORD_CANFD)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_FORD, FordSafetyFlags.FLAG_FORD_LONG_CONTROL | FordSafetyFlags.FLAG_FORD_CANFD)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import unittest
|
||||
|
||||
from opendbc.car.gm.values import GMSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -99,7 +99,7 @@ class TestGmSafetyBase(common.PandaCarSafetyTest, common.DriverTorqueSteeringSaf
|
||||
self.packer = CANPackerPanda("gm_global_a_powertrain_generated")
|
||||
self.packer_chassis = CANPackerPanda("gm_global_a_chassis")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_GM, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_GM, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _pcm_status_msg(self, enable):
|
||||
@@ -159,7 +159,7 @@ class TestGmAscmSafety(GmLongitudinalBase, TestGmSafetyBase):
|
||||
self.packer = CANPackerPanda("gm_global_a_powertrain_generated")
|
||||
self.packer_chassis = CANPackerPanda("gm_global_a_chassis")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_GM, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_GM, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -189,7 +189,7 @@ class TestGmCameraSafety(TestGmCameraSafetyBase):
|
||||
self.packer = CANPackerPanda("gm_global_a_powertrain_generated")
|
||||
self.packer_chassis = CANPackerPanda("gm_global_a_chassis")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_GM, GMSafetyFlags.FLAG_GM_HW_CAM)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_GM, GMSafetyFlags.FLAG_GM_HW_CAM)
|
||||
self.safety.init_tests()
|
||||
|
||||
def test_buttons(self):
|
||||
@@ -221,7 +221,7 @@ class TestGmCameraLongitudinalSafety(GmLongitudinalBase, TestGmCameraSafetyBase)
|
||||
self.packer = CANPackerPanda("gm_global_a_powertrain_generated")
|
||||
self.packer_chassis = CANPackerPanda("gm_global_a_chassis")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_GM, GMSafetyFlags.FLAG_GM_HW_CAM | GMSafetyFlags.FLAG_GM_HW_CAM_LONG)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_GM, GMSafetyFlags.FLAG_GM_HW_CAM | GMSafetyFlags.FLAG_GM_HW_CAM_LONG)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import unittest
|
||||
import numpy as np
|
||||
|
||||
from opendbc.car.honda.values import HondaSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda, MAX_WRONG_COUNTERS
|
||||
@@ -268,7 +268,7 @@ class TestHondaNidecSafetyBase(HondaBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("honda_civic_touring_2016_can_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_NIDEC, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _send_brake_msg(self, brake, aeb_req=0, bus=0):
|
||||
@@ -358,7 +358,7 @@ class TestHondaNidecPcmAltSafety(TestHondaNidecPcmSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("acura_ilx_2016_can_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, HondaSafetyFlags.FLAG_HONDA_NIDEC_ALT)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_NIDEC, HondaSafetyFlags.FLAG_HONDA_NIDEC_ALT)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _acc_state_msg(self, main_on):
|
||||
@@ -423,7 +423,7 @@ class TestHondaBoschAltBrakeSafetyBase(TestHondaBoschSafetyBase):
|
||||
"""
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_ALT_BRAKE)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_ALT_BRAKE)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _user_brake_msg(self, brake):
|
||||
@@ -445,7 +445,7 @@ class TestHondaBoschSafety(HondaPcmEnableBase, TestHondaBoschSafetyBase):
|
||||
"""
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -472,7 +472,7 @@ class TestHondaBoschLongSafety(HondaButtonEnableBase, TestHondaBoschSafetyBase):
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_BOSCH_LONG)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_BOSCH_LONG)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _send_gas_brake_msg(self, gas, accel):
|
||||
@@ -532,7 +532,7 @@ class TestHondaBoschRadarlessSafety(HondaPcmEnableBase, TestHondaBoschRadarlessS
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -543,7 +543,7 @@ class TestHondaBoschRadarlessAltBrakeSafety(HondaPcmEnableBase, TestHondaBoschRa
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS | HondaSafetyFlags.FLAG_HONDA_ALT_BRAKE)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS | HondaSafetyFlags.FLAG_HONDA_ALT_BRAKE)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -557,7 +557,7 @@ class TestHondaBoschRadarlessLongSafety(common.LongitudinalAccelSafetyTest, Hond
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS | HondaSafetyFlags.FLAG_HONDA_BOSCH_LONG)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HONDA_BOSCH, HondaSafetyFlags.FLAG_HONDA_RADARLESS | HondaSafetyFlags.FLAG_HONDA_BOSCH_LONG)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _accel_msg(self, accel):
|
||||
|
||||
@@ -3,7 +3,7 @@ import random
|
||||
import unittest
|
||||
|
||||
from opendbc.car.hyundai.values import HyundaiSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -74,7 +74,7 @@ class TestHyundaiSafety(HyundaiButtonBase, common.PandaCarSafetyTest, common.Dri
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _button_msg(self, buttons, main_button=0, bus=0):
|
||||
@@ -123,7 +123,7 @@ class TestHyundaiSafetyAltLimits(TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_ALT_LIMITS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_ALT_LIMITS)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -134,7 +134,7 @@ class TestHyundaiSafetyCameraSCC(TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_CAMERA_SCC)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_CAMERA_SCC)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ class TestHyundaiLegacySafety(TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_LEGACY, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ class TestHyundaiLegacySafetyEV(TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 1)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_LEGACY, 1)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _user_gas_msg(self, gas):
|
||||
@@ -162,7 +162,7 @@ class TestHyundaiLegacySafetyHEV(TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_LEGACY, 2)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_LEGACY, 2)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _user_gas_msg(self, gas):
|
||||
@@ -180,7 +180,7 @@ class TestHyundaiLongitudinalSafety(HyundaiLongitudinalBase, TestHyundaiSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_kia_generic")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_LONG)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI, HyundaiSafetyFlags.FLAG_HYUNDAI_LONG)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _accel_msg(self, accel, aeb_req=False, aeb_decel=0):
|
||||
|
||||
@@ -3,7 +3,7 @@ from parameterized import parameterized_class
|
||||
import unittest
|
||||
|
||||
from opendbc.car.hyundai.values import HyundaiSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -103,7 +103,7 @@ class TestHyundaiCanfdHDA1Base(TestHyundaiCanfdBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, self.SAFETY_PARAM)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, self.SAFETY_PARAM)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ class TestHyundaiCanfdHDA1AltButtons(TestHyundaiCanfdHDA1Base):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_ALT_BUTTONS | self.SAFETY_PARAM)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_ALT_BUTTONS | self.SAFETY_PARAM)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _button_msg(self, buttons, main_button=0, bus=1):
|
||||
@@ -181,7 +181,7 @@ class TestHyundaiCanfdHDA2EV(TestHyundaiCanfdBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 | HyundaiSafetyFlags.FLAG_HYUNDAI_EV_GAS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 | HyundaiSafetyFlags.FLAG_HYUNDAI_EV_GAS)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ class TestHyundaiCanfdHDA2EVAltSteering(TestHyundaiCanfdBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 | HyundaiSafetyFlags.FLAG_HYUNDAI_EV_GAS |
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 | HyundaiSafetyFlags.FLAG_HYUNDAI_EV_GAS |
|
||||
HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2_ALT_STEERING)
|
||||
self.safety.init_tests()
|
||||
|
||||
@@ -223,7 +223,7 @@ class TestHyundaiCanfdHDA2LongEV(HyundaiLongitudinalBase, TestHyundaiCanfdHDA2EV
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 |
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CANFD_HDA2 |
|
||||
HyundaiSafetyFlags.FLAG_HYUNDAI_LONG | HyundaiSafetyFlags.FLAG_HYUNDAI_EV_GAS)
|
||||
self.safety.init_tests()
|
||||
|
||||
@@ -264,7 +264,7 @@ class TestHyundaiCanfdHDA1Long(HyundaiLongitudinalBase, TestHyundaiCanfdHDA1Base
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("hyundai_canfd")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CAMERA_SCC | self.SAFETY_PARAM)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_HYUNDAI_CANFD, HyundaiSafetyFlags.FLAG_HYUNDAI_CAMERA_SCC | self.SAFETY_PARAM)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _accel_msg(self, accel, aeb_req=False, aeb_decel=0):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env python3
|
||||
import unittest
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -30,7 +30,7 @@ class TestMazdaSafety(common.PandaCarSafetyTest, common.DriverTorqueSteeringSafe
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("mazda_2017")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_MAZDA, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_MAZDA, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _torque_meas_msg(self, torque):
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import unittest
|
||||
|
||||
from opendbc.car.nissan.values import NissanSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -30,7 +30,7 @@ class TestNissanSafety(common.PandaCarSafetyTest, common.AngleSteeringSafetyTest
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("nissan_x_trail_2017_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_NISSAN, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_NISSAN, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _angle_cmd_msg(self, angle: float, enabled: bool):
|
||||
@@ -90,7 +90,7 @@ class TestNissanSafetyAltEpsBus(TestNissanSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("nissan_x_trail_2017_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_NISSAN, NissanSafetyFlags.FLAG_NISSAN_ALT_EPS_BUS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_NISSAN, NissanSafetyFlags.FLAG_NISSAN_ALT_EPS_BUS)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ class TestNissanLeafSafety(TestNissanSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("nissan_leaf_2018_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_NISSAN, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_NISSAN, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _user_brake_msg(self, brake):
|
||||
|
||||
@@ -3,7 +3,7 @@ import enum
|
||||
import unittest
|
||||
|
||||
from opendbc.car.subaru.values import SubaruSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -77,7 +77,7 @@ class TestSubaruSafetyBase(common.PandaCarSafetyTest):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("subaru_global_2017_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_SUBARU, self.FLAGS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_SUBARU, self.FLAGS)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _set_prev_torque(self, t):
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import unittest
|
||||
|
||||
from opendbc.car.subaru.values import SubaruSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -30,7 +30,7 @@ class TestSubaruPreglobalSafety(common.PandaCarSafetyTest, common.DriverTorqueSt
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda(self.DBC)
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_SUBARU_PREGLOBAL, self.FLAGS)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_SUBARU_PREGLOBAL, self.FLAGS)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _set_prev_torque(self, t):
|
||||
|
||||
@@ -3,7 +3,7 @@ import unittest
|
||||
import numpy as np
|
||||
|
||||
from opendbc.car.tesla.values import TeslaSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -79,7 +79,7 @@ class TestTeslaSteeringSafety(TestTeslaSafety, common.AngleSteeringSafetyTest):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("tesla_can")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TESLA, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _angle_cmd_msg(self, angle: float, enabled: bool):
|
||||
@@ -114,7 +114,7 @@ class TestTeslaRavenSteeringSafety(TestTeslaSteeringSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("tesla_can")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_RAVEN)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_RAVEN)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _angle_meas_msg(self, angle: float):
|
||||
@@ -167,7 +167,7 @@ class TestTeslaChassisLongitudinalSafety(TestTeslaLongitudinalSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("tesla_can")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_LONG_CONTROL)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_LONG_CONTROL)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -179,7 +179,7 @@ class TestTeslaPTLongitudinalSafety(TestTeslaLongitudinalSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("tesla_powertrain")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_LONG_CONTROL | TeslaSafetyFlags.FLAG_TESLA_POWERTRAIN)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TESLA, TeslaSafetyFlags.FLAG_TESLA_LONG_CONTROL | TeslaSafetyFlags.FLAG_TESLA_POWERTRAIN)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ import unittest
|
||||
import itertools
|
||||
|
||||
from opendbc.car.toyota.values import ToyotaSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -147,7 +147,7 @@ class TestToyotaSafetyTorque(TestToyotaSafetyBase, common.MotorTorqueSteeringSaf
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_nodsu_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -167,7 +167,7 @@ class TestToyotaSafetyAngle(TestToyotaSafetyBase, common.AngleSteeringSafetyTest
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_nodsu_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_LTA)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_LTA)
|
||||
self.safety.init_tests()
|
||||
|
||||
# Only allow LKA msgs with no actuation
|
||||
@@ -269,7 +269,7 @@ class TestToyotaAltBrakeSafety(TestToyotaSafetyTorque):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_new_mc_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_ALT_BRAKE)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_ALT_BRAKE)
|
||||
self.safety.init_tests()
|
||||
|
||||
def _user_brake_msg(self, brake):
|
||||
@@ -314,7 +314,7 @@ class TestToyotaStockLongitudinalTorque(TestToyotaStockLongitudinalBase, TestToy
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_nodsu_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ class TestToyotaStockLongitudinalAngle(TestToyotaStockLongitudinalBase, TestToyo
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_nodsu_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL | ToyotaSafetyFlags.FLAG_TOYOTA_LTA)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL | ToyotaSafetyFlags.FLAG_TOYOTA_LTA)
|
||||
self.safety.init_tests()
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@ class TestToyotaSecOcSafety(TestToyotaStockLongitudinalBase):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("toyota_secoc_pt_generated")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL | ToyotaSafetyFlags.FLAG_TOYOTA_SECOC)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_TOYOTA, self.EPS_SCALE | ToyotaSafetyFlags.FLAG_TOYOTA_STOCK_LONGITUDINAL | ToyotaSafetyFlags.FLAG_TOYOTA_SECOC)
|
||||
self.safety.init_tests()
|
||||
|
||||
# This platform also has alternate brake and PCM messages, but same naming in the DBC, so same packers work
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
import unittest
|
||||
import numpy as np
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -144,7 +144,7 @@ class TestVolkswagenMqbStockSafety(TestVolkswagenMqbSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("vw_mqb_2010")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_MQB, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_VOLKSWAGEN_MQB, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def test_spam_cancel_safety_check(self):
|
||||
@@ -166,7 +166,7 @@ class TestVolkswagenMqbLongSafety(TestVolkswagenMqbSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("vw_mqb_2010")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_MQB, VolkswagenSafetyFlags.FLAG_VOLKSWAGEN_LONG_CONTROL)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_VOLKSWAGEN_MQB, VolkswagenSafetyFlags.FLAG_VOLKSWAGEN_LONG_CONTROL)
|
||||
self.safety.init_tests()
|
||||
|
||||
# stock cruise controls are entirely bypassed under openpilot longitudinal control
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
import unittest
|
||||
|
||||
from opendbc.car.volkswagen.values import VolkswagenSafetyFlags
|
||||
from panda import Panda
|
||||
from opendbc.safety import Safety
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
import panda.tests.safety.common as common
|
||||
from panda.tests.safety.common import CANPackerPanda
|
||||
@@ -127,7 +127,7 @@ class TestVolkswagenPqStockSafety(TestVolkswagenPqSafety):
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("vw_golf_mk4")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_PQ, 0)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_VOLKSWAGEN_PQ, 0)
|
||||
self.safety.init_tests()
|
||||
|
||||
def test_spam_cancel_safety_check(self):
|
||||
@@ -149,7 +149,7 @@ class TestVolkswagenPqLongSafety(TestVolkswagenPqSafety, common.LongitudinalAcce
|
||||
def setUp(self):
|
||||
self.packer = CANPackerPanda("vw_golf_mk4")
|
||||
self.safety = libpanda_py.libpanda
|
||||
self.safety.set_safety_hooks(Panda.SAFETY_VOLKSWAGEN_PQ, VolkswagenSafetyFlags.FLAG_VOLKSWAGEN_LONG_CONTROL)
|
||||
self.safety.set_safety_hooks(Safety.SAFETY_VOLKSWAGEN_PQ, VolkswagenSafetyFlags.FLAG_VOLKSWAGEN_LONG_CONTROL)
|
||||
self.safety.init_tests()
|
||||
|
||||
# stock cruise controls are entirely bypassed under openpilot longitudinal control
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from opendbc.car.toyota.values import ToyotaSafetyFlags
|
||||
from opendbc.safety import Safety
|
||||
import panda.tests.libpanda.libpanda_py as libpanda_py
|
||||
from panda import Panda
|
||||
|
||||
def to_signed(d, bits):
|
||||
ret = d
|
||||
@@ -10,49 +10,49 @@ def to_signed(d, bits):
|
||||
|
||||
def is_steering_msg(mode, param, addr):
|
||||
ret = False
|
||||
if mode in (Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_BOSCH):
|
||||
if mode in (Safety.SAFETY_HONDA_NIDEC, Safety.SAFETY_HONDA_BOSCH):
|
||||
ret = (addr == 0xE4) or (addr == 0x194) or (addr == 0x33D) or (addr == 0x33DA) or (addr == 0x33DB)
|
||||
elif mode == Panda.SAFETY_TOYOTA:
|
||||
elif mode == Safety.SAFETY_TOYOTA:
|
||||
ret = addr == (0x191 if param & ToyotaSafetyFlags.FLAG_TOYOTA_LTA else 0x2E4)
|
||||
elif mode == Panda.SAFETY_GM:
|
||||
elif mode == Safety.SAFETY_GM:
|
||||
ret = addr == 384
|
||||
elif mode == Panda.SAFETY_HYUNDAI:
|
||||
elif mode == Safety.SAFETY_HYUNDAI:
|
||||
ret = addr == 832
|
||||
elif mode == Panda.SAFETY_CHRYSLER:
|
||||
elif mode == Safety.SAFETY_CHRYSLER:
|
||||
ret = addr == 0x292
|
||||
elif mode == Panda.SAFETY_SUBARU:
|
||||
elif mode == Safety.SAFETY_SUBARU:
|
||||
ret = addr == 0x122
|
||||
elif mode == Panda.SAFETY_FORD:
|
||||
elif mode == Safety.SAFETY_FORD:
|
||||
ret = addr == 0x3d3
|
||||
elif mode == Panda.SAFETY_NISSAN:
|
||||
elif mode == Safety.SAFETY_NISSAN:
|
||||
ret = addr == 0x169
|
||||
return ret
|
||||
|
||||
def get_steer_value(mode, param, to_send):
|
||||
torque, angle = 0, 0
|
||||
if mode in (Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_BOSCH):
|
||||
if mode in (Safety.SAFETY_HONDA_NIDEC, Safety.SAFETY_HONDA_BOSCH):
|
||||
torque = (to_send.data[0] << 8) | to_send.data[1]
|
||||
torque = to_signed(torque, 16)
|
||||
elif mode == Panda.SAFETY_TOYOTA:
|
||||
elif mode == Safety.SAFETY_TOYOTA:
|
||||
if param & ToyotaSafetyFlags.FLAG_TOYOTA_LTA:
|
||||
angle = (to_send.data[1] << 8) | to_send.data[2]
|
||||
angle = to_signed(angle, 16)
|
||||
else:
|
||||
torque = (to_send.data[1] << 8) | (to_send.data[2])
|
||||
torque = to_signed(torque, 16)
|
||||
elif mode == Panda.SAFETY_GM:
|
||||
elif mode == Safety.SAFETY_GM:
|
||||
torque = ((to_send.data[0] & 0x7) << 8) | to_send.data[1]
|
||||
torque = to_signed(torque, 11)
|
||||
elif mode == Panda.SAFETY_HYUNDAI:
|
||||
elif mode == Safety.SAFETY_HYUNDAI:
|
||||
torque = (((to_send.data[3] & 0x7) << 8) | to_send.data[2]) - 1024
|
||||
elif mode == Panda.SAFETY_CHRYSLER:
|
||||
elif mode == Safety.SAFETY_CHRYSLER:
|
||||
torque = (((to_send.data[0] & 0x7) << 8) | to_send.data[1]) - 1024
|
||||
elif mode == Panda.SAFETY_SUBARU:
|
||||
elif mode == Safety.SAFETY_SUBARU:
|
||||
torque = ((to_send.data[3] & 0x1F) << 8) | to_send.data[2]
|
||||
torque = -to_signed(torque, 13)
|
||||
elif mode == Panda.SAFETY_FORD:
|
||||
elif mode == Safety.SAFETY_FORD:
|
||||
angle = ((to_send.data[0] << 3) | (to_send.data[1] >> 5)) - 1000
|
||||
elif mode == Panda.SAFETY_NISSAN:
|
||||
elif mode == Safety.SAFETY_NISSAN:
|
||||
angle = (to_send.data[0] << 10) | (to_send.data[1] << 2) | (to_send.data[2] >> 6)
|
||||
angle = -angle + (1310 * 100)
|
||||
return torque, angle
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import os
|
||||
import time
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
|
||||
@@ -12,7 +13,7 @@ if __name__ == "__main__":
|
||||
with Panda(disable_checks=False) as p:
|
||||
if not flag_set:
|
||||
p.set_heartbeat_disabled()
|
||||
p.set_safety_mode(Panda.SAFETY_ELM327, 30)
|
||||
p.set_safety_mode(Safety.SAFETY_ELM327, 30)
|
||||
flag_set = True
|
||||
|
||||
# shutdown when told
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import time
|
||||
import pytest
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda, PandaJungle
|
||||
|
||||
PANDA_SERIAL = "28002d000451323431333839"
|
||||
@@ -48,7 +49,7 @@ def setup_state(panda, jungle, state):
|
||||
jungle.set_panda_individual_power(OBDC_PORT, 1)
|
||||
wait_for_boot(panda, jungle)
|
||||
set_som_shutdown_flag(panda)
|
||||
panda.set_safety_mode(Panda.SAFETY_SILENT)
|
||||
panda.set_safety_mode(Safety.SAFETY_SILENT)
|
||||
panda.send_heartbeat()
|
||||
wait_for_som_shutdown(panda, jungle)
|
||||
else:
|
||||
@@ -82,7 +83,7 @@ def wait_for_full_poweroff(jungle, timeout=30):
|
||||
|
||||
def check_som_boot_flag(panda):
|
||||
h = panda.health()
|
||||
return h['safety_mode'] == Panda.SAFETY_ELM327 and h['safety_param'] == 30
|
||||
return h['safety_mode'] == Safety.SAFETY_ELM327 and h['safety_param'] == 30
|
||||
|
||||
def set_som_shutdown_flag(panda):
|
||||
panda.set_can_data_speed_kbps(0, 1000)
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import os
|
||||
import random
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
def get_test_string():
|
||||
@@ -9,7 +10,7 @@ def get_test_string():
|
||||
|
||||
if __name__ == "__main__":
|
||||
p = Panda()
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
print("Spamming all buses...")
|
||||
while True:
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import struct
|
||||
import time
|
||||
|
||||
from opendbc.safety import Safety
|
||||
from panda import Panda
|
||||
|
||||
if __name__ == "__main__":
|
||||
@@ -15,7 +16,7 @@ if __name__ == "__main__":
|
||||
t2 = time.time()
|
||||
print("100 requests took %.2f ms" % ((t2 - t1) * 1000))
|
||||
|
||||
p.set_safety_mode(Panda.SAFETY_ALLOUTPUT)
|
||||
p.set_safety_mode(Safety.SAFETY_ALLOUTPUT)
|
||||
|
||||
a = 0
|
||||
while True:
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
import random
|
||||
import unittest
|
||||
|
||||
from panda import Panda, DLC_TO_LEN, USBPACKET_MAX_SIZE, pack_can_buffer, unpack_can_buffer
|
||||
from opendbc.safety import Safety
|
||||
from panda import DLC_TO_LEN, USBPACKET_MAX_SIZE, pack_can_buffer, unpack_can_buffer
|
||||
from panda.tests.libpanda import libpanda_py
|
||||
|
||||
lpp = libpanda_py.libpanda
|
||||
@@ -101,7 +102,7 @@ class TestPandaComms(unittest.TestCase):
|
||||
|
||||
|
||||
def test_can_send_usb(self):
|
||||
lpp.set_safety_hooks(Panda.SAFETY_ALLOUTPUT, 0)
|
||||
lpp.set_safety_hooks(Safety.SAFETY_ALLOUTPUT, 0)
|
||||
|
||||
for bus in range(3):
|
||||
with self.subTest(bus=bus):
|
||||
|
||||
Reference in New Issue
Block a user