From b7ff2cced3e29014afa3ce3f015154a3de819a14 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 Jun 2022 18:56:33 -0500 Subject: [PATCH] latching detection --- panda/board/safety/safety_mazda.h | 9 +++++++-- panda/board/safety_declarations.h | 1 + selfdrive/car/interfaces.py | 4 +--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/panda/board/safety/safety_mazda.h b/panda/board/safety/safety_mazda.h index 27040281f..2ef2bd4a3 100644 --- a/panda/board/safety/safety_mazda.h +++ b/panda/board/safety/safety_mazda.h @@ -48,10 +48,15 @@ addr_checks mazda_ti_rx_checks = {mazda_ti_addr_checks, MAZDA_TI_ADDR_CHECKS_LEN // track msgs coming from OP so that we know what CAM msgs to drop and what to forward static int mazda_rx_hook(CANPacket_t *to_push) { bool valid = addr_safety_check(to_push, &mazda_rx_checks, NULL, NULL, NULL); - if (((GET_ADDR(to_push) == TI_STEER_TORQUE)) && ((GET_BYTE(to_push, 0) == GET_BYTE(to_push, 1)))) { - torque_interceptor_detected = 1; + torque_interceptor_detected = true; + } + if (torque_interceptor_detected){ + torque_interceptor_detected_latch = true; + } + if (torque_interceptor_detected_latch){ + torque_interceptor_detected = true; valid &= addr_safety_check(to_push, &mazda_ti_rx_checks, NULL, NULL, NULL); } diff --git a/panda/board/safety_declarations.h b/panda/board/safety_declarations.h index 1a0871561..ec965593a 100644 --- a/panda/board/safety_declarations.h +++ b/panda/board/safety_declarations.h @@ -113,6 +113,7 @@ float vehicle_speed = 0; bool vehicle_moving = false; bool acc_main_on = false; // referred to as "ACC off" in ISO 15622:2018 bool torque_interceptor_detected = false; +bool torque_interceptor_detected_latch = false; // for safety modes with torque steering control int desired_torque_last = 0; // last desired steer torque diff --git a/selfdrive/car/interfaces.py b/selfdrive/car/interfaces.py index eb20eb350..b9f1187e9 100644 --- a/selfdrive/car/interfaces.py +++ b/selfdrive/car/interfaces.py @@ -32,6 +32,7 @@ class CarInterfaceBase(ABC): self.steering_unpressed = 0 self.low_speed_alert = False self.silent_steer_warning = True + self.CP.enableTorqueInterceptor = False if CarState is not None: self.CS = CarState(CP) @@ -100,9 +101,6 @@ class CarInterfaceBase(ABC): ret.longitudinalActuatorDelayUpperBound = 0.15 ret.steerLimitTimer = 1.0 - # No Torque Interceptor by default - ret.enableTorqueInterceptor = False - return ret @abstractmethod