From cb8fc6bd42212f6de2e6ff4635cacd5e98a494ec Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Wed, 30 Nov 2022 17:22:42 -0800 Subject: [PATCH] safety: common interceptor checks (#1178) * interceptor checks * only one line needed for now * whoops * misra * misread as | --- board/safety.h | 4 ++++ board/safety/safety_honda.h | 6 ++---- board/safety/safety_toyota.h | 6 ++---- board/safety_declarations.h | 1 + 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/board/safety.h b/board/safety.h index c52b7ae1d..b12d75090 100644 --- a/board/safety.h +++ b/board/safety.h @@ -511,6 +511,10 @@ bool longitudinal_brake_checks(int desired_brake, const LongitudinalLimits limit return violation; } +bool longitudinal_interceptor_checks(CANPacket_t *to_send, bool longitudinal_allowed) { + return !longitudinal_allowed && (GET_BYTE(to_send, 0) || GET_BYTE(to_send, 1)); +} + // Safety checks for torque-based steering commands bool steer_torque_cmd_checks(int desired_torque, int steer_req, const SteeringLimits limits) { bool violation = false; diff --git a/board/safety/safety_honda.h b/board/safety/safety_honda.h index 7240fcd26..504bf228b 100644 --- a/board/safety/safety_honda.h +++ b/board/safety/safety_honda.h @@ -333,10 +333,8 @@ static int honda_tx_hook(CANPacket_t *to_send, bool longitudinal_allowed) { // GAS: safety check (interceptor) if (addr == 0x200) { - if (!longitudinal_allowed) { - if (GET_BYTE(to_send, 0) || GET_BYTE(to_send, 1)) { - tx = 0; - } + if (longitudinal_interceptor_checks(to_send, longitudinal_allowed)) { + tx = 0; } } diff --git a/board/safety/safety_toyota.h b/board/safety/safety_toyota.h index 81ab8c149..d695ee16f 100644 --- a/board/safety/safety_toyota.h +++ b/board/safety/safety_toyota.h @@ -147,10 +147,8 @@ static int toyota_tx_hook(CANPacket_t *to_send, bool longitudinal_allowed) { // GAS PEDAL: safety check if (addr == 0x200) { - if (!longitudinal_allowed) { - if (GET_BYTE(to_send, 0) || GET_BYTE(to_send, 1)) { - tx = 0; - } + if (longitudinal_interceptor_checks(to_send, longitudinal_allowed)) { + tx = 0; } } diff --git a/board/safety_declarations.h b/board/safety_declarations.h index c32d5cd9b..e7d40630e 100644 --- a/board/safety_declarations.h +++ b/board/safety_declarations.h @@ -130,6 +130,7 @@ bool steer_torque_cmd_checks(int desired_torque, int steer_req, const SteeringLi bool longitudinal_accel_checks(int desired_accel, const LongitudinalLimits limits, const bool longitudinal_allowed); bool longitudinal_gas_checks(int desired_gas, const LongitudinalLimits limits, const bool longitudinal_allowed); bool longitudinal_brake_checks(int desired_brake, const LongitudinalLimits limits, const bool longitudinal_allowed); +bool longitudinal_interceptor_checks(CANPacket_t *to_send, const bool longitudinal_allowed); void pcm_cruise_check(bool cruise_engaged); typedef const addr_checks* (*safety_hook_init)(uint16_t param);