diff --git a/board/safety.h b/board/safety.h index 7c678e6..52f9a85 100644 --- a/board/safety.h +++ b/board/safety.h @@ -19,11 +19,11 @@ // from cereal.car.CarParams.SafetyModel #define SAFETY_SILENT 0U -#define SAFETY_HONDA 1U +#define SAFETY_HONDA_NIDEC 1U #define SAFETY_TOYOTA 2U #define SAFETY_ELM327 3U #define SAFETY_GM 4U -#define SAFETY_HONDA_BOSCH 5U +#define SAFETY_HONDA_BOSCH_GIRAFFE 5U #define SAFETY_FORD 6U #define SAFETY_CADILLAC 7U #define SAFETY_HYUNDAI 8U @@ -36,6 +36,7 @@ #define SAFETY_ALLOUTPUT 17U #define SAFETY_GM_ASCM 18U #define SAFETY_NOOUTPUT 19U +#define SAFETY_HONDA_BOSCH_HARNESS 20U uint16_t current_safety_mode = SAFETY_SILENT; const safety_hooks *current_hooks = &nooutput_hooks; @@ -74,11 +75,12 @@ typedef struct { const safety_hook_config safety_hook_registry[] = { {SAFETY_SILENT, &nooutput_hooks}, - {SAFETY_HONDA, &honda_hooks}, + {SAFETY_HONDA_NIDEC, &honda_nidec_hooks}, {SAFETY_TOYOTA, &toyota_hooks}, {SAFETY_ELM327, &elm327_hooks}, {SAFETY_GM, &gm_hooks}, - {SAFETY_HONDA_BOSCH, &honda_bosch_hooks}, + {SAFETY_HONDA_BOSCH_GIRAFFE, &honda_bosch_hooks}, + {SAFETY_HONDA_BOSCH_HARNESS, &honda_bosch_hooks}, // TODO: distinguish from above {SAFETY_HYUNDAI, &hyundai_hooks}, {SAFETY_CHRYSLER, &chrysler_hooks}, {SAFETY_SUBARU, &subaru_hooks}, diff --git a/board/safety/safety_honda.h b/board/safety/safety_honda.h index 05525a0..783b2e1 100644 --- a/board/safety/safety_honda.h +++ b/board/safety/safety_honda.h @@ -196,7 +196,7 @@ static int honda_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) { return tx; } -static void honda_init(int16_t param) { +static void honda_nidec_init(int16_t param) { UNUSED(param); controls_allowed = false; relay_malfunction = false; @@ -212,7 +212,7 @@ static void honda_bosch_init(int16_t param) { honda_alt_brake_msg = (param == 1) ? true : false; } -static int honda_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) { +static int honda_nidec_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) { // fwd from car to camera. also fwd certain msgs from camera to car // 0xE4 is steering on all cars except CRV and RDX, 0x194 for CRV and RDX, // 0x1FA is brake control, 0x30C is acc hud, 0x33D is lkas hud, @@ -260,12 +260,12 @@ static int honda_bosch_fwd_hook(int bus_num, CAN_FIFOMailBox_TypeDef *to_fwd) { return bus_fwd; } -const safety_hooks honda_hooks = { - .init = honda_init, +const safety_hooks honda_nidec_hooks = { + .init = honda_nidec_init, .rx = honda_rx_hook, .tx = honda_tx_hook, .tx_lin = nooutput_tx_lin_hook, - .fwd = honda_fwd_hook, + .fwd = honda_nidec_fwd_hook, }; const safety_hooks honda_bosch_hooks = { diff --git a/drivers/windows/panda_shared/panda.h b/drivers/windows/panda_shared/panda.h index 117fc92..6e8933f 100644 --- a/drivers/windows/panda_shared/panda.h +++ b/drivers/windows/panda_shared/panda.h @@ -39,7 +39,7 @@ namespace panda { typedef enum _PANDA_SAFETY_MODE : uint16_t { SAFETY_SILENT = 0, - SAFETY_HONDA = 1, + SAFETY_HONDA_NIDEC = 1, SAFETY_ALLOUTPUT = 17, } PANDA_SAFETY_MODE; diff --git a/python/__init__.py b/python/__init__.py index 3246e30..436e72a 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -111,11 +111,11 @@ class Panda(object): # matches cereal.car.CarParams.SafetyModel SAFETY_SILENT = 0 - SAFETY_HONDA = 1 + SAFETY_HONDA_NIDEC = 1 SAFETY_TOYOTA = 2 SAFETY_ELM327 = 3 SAFETY_GM = 4 - SAFETY_HONDA_BOSCH = 5 + SAFETY_HONDA_BOSCH_GIRAFFE = 5 SAFETY_FORD = 6 SAFETY_CADILLAC = 7 SAFETY_HYUNDAI = 8 @@ -128,6 +128,7 @@ class Panda(object): SAFETY_ALLOUTPUT = 17 SAFETY_GM_ASCM = 18 SAFETY_NOOUTPUT = 19 + SAFETY_HONDA_BOSCH_HARNESS = 20 SERIAL_DEBUG = 0 SERIAL_ESP = 1 diff --git a/tests/safety/test_honda.py b/tests/safety/test_honda.py index 6ab2478..fab2c99 100755 --- a/tests/safety/test_honda.py +++ b/tests/safety/test_honda.py @@ -14,7 +14,7 @@ class TestHondaSafety(unittest.TestCase): @classmethod def setUp(cls): cls.safety = libpandasafety_py.libpandasafety - cls.safety.set_safety_hooks(Panda.SAFETY_HONDA, 0) + cls.safety.set_safety_hooks(Panda.SAFETY_HONDA_NIDEC, 0) cls.safety.init_tests_honda() def _speed_msg(self, speed): diff --git a/tests/safety/test_honda_bosch.py b/tests/safety/test_honda_bosch.py index eed3622..ee6eb9f 100755 --- a/tests/safety/test_honda_bosch.py +++ b/tests/safety/test_honda_bosch.py @@ -14,7 +14,7 @@ class TestHondaSafety(unittest.TestCase): @classmethod def setUp(cls): cls.safety = libpandasafety_py.libpandasafety - cls.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH, 0) + cls.safety.set_safety_hooks(Panda.SAFETY_HONDA_BOSCH_GIRAFFE, 0) cls.safety.init_tests_honda() def test_spam_can_buses(self): diff --git a/tests/safety_replay/helpers.py b/tests/safety_replay/helpers.py index 8fa1d3a..b5fe1a0 100644 --- a/tests/safety_replay/helpers.py +++ b/tests/safety_replay/helpers.py @@ -11,7 +11,7 @@ def to_signed(d, bits): def is_steering_msg(mode, addr): ret = False - if mode == Panda.SAFETY_HONDA or mode == Panda.SAFETY_HONDA_BOSCH: + if mode in [Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_BOSCH_GIRAFFE, Panda.SAFETY_HONDA_BOSCH_HARNESS]: ret = (addr == 0xE4) or (addr == 0x194) or (addr == 0x33D) elif mode == Panda.SAFETY_TOYOTA: ret = addr == 0x2E4 @@ -27,7 +27,7 @@ def is_steering_msg(mode, addr): def get_steer_torque(mode, to_send): ret = 0 - if mode == Panda.SAFETY_HONDA or mode == Panda.SAFETY_HONDA_BOSCH: + if mode in [Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_BOSCH_GIRAFFE, Panda.SAFETY_HONDA_BOSCH_HARNESS]: ret = to_send.RDLR & 0xFFFF0000 elif mode == Panda.SAFETY_TOYOTA: ret = (to_send.RDLR & 0xFF00) | ((to_send.RDLR >> 16) & 0xFF) @@ -45,7 +45,7 @@ def get_steer_torque(mode, to_send): return ret def set_desired_torque_last(safety, mode, torque): - if mode == Panda.SAFETY_HONDA or mode == Panda.SAFETY_HONDA_BOSCH: + if mode in [Panda.SAFETY_HONDA_NIDEC, Panda.SAFETY_HONDA_BOSCH_GIRAFFE, Panda.SAFETY_HONDA_BOSCH_HARNESS]: pass # honda safety mode doesn't enforce a rate on steering msgs elif mode == Panda.SAFETY_TOYOTA: safety.set_toyota_desired_torque_last(torque) diff --git a/tests/safety_replay/test_safety_replay.py b/tests/safety_replay/test_safety_replay.py index b427835..62546ba 100755 --- a/tests/safety_replay/test_safety_replay.py +++ b/tests/safety_replay/test_safety_replay.py @@ -11,10 +11,10 @@ BASE_URL = "https://commadataci.blob.core.windows.net/openpilotci/" # (route, safety mode, param) logs = [ - ("b0c9d2329ad1606b|2019-05-30--20-23-57.bz2", Panda.SAFETY_HONDA, 0), # HONDA.CIVIC + ("b0c9d2329ad1606b|2019-05-30--20-23-57.bz2", Panda.SAFETY_HONDA_NIDEC, 0), # HONDA.CIVIC ("38bfd238edecbcd7|2019-06-07--10-15-25.bz2", Panda.SAFETY_TOYOTA, 66), # TOYOTA.PRIUS ("f89c604cf653e2bf|2018-09-29--13-46-50.bz2", Panda.SAFETY_GM, 0), # GM.VOLT - ("0375fdf7b1ce594d|2019-05-21--20-10-33.bz2", Panda.SAFETY_HONDA_BOSCH, 1), # HONDA.ACCORD + ("0375fdf7b1ce594d|2019-05-21--20-10-33.bz2", Panda.SAFETY_HONDA_BOSCH_GIRAFFE, 1), # HONDA.ACCORD ("02ec6bea180a4d36|2019-04-17--11-21-35.bz2", Panda.SAFETY_HYUNDAI, 0), # HYUNDAI.SANTA_FE ("6fb4948a7ebe670e|2019-11-12--00-35-53.bz2", Panda.SAFETY_CHRYSLER, 0), # CHRYSLER.PACIFICA_2018_HYBRID ("791340bc01ed993d|2019-04-08--10-26-00.bz2", Panda.SAFETY_SUBARU, 0), # SUBARU.IMPREZA