solve race condition is relay_malfunction right after changing the relay status by adding a counter
parent
2d4cb05cf1
commit
878dd00ac8
|
@ -37,7 +37,7 @@ static void chrysler_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
}
|
||||
|
||||
// check if stock camera ECU is on bus 0
|
||||
if ((bus == 0) && (addr == 0x292)) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && (addr == 0x292)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ static void ford_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
ford_gas_prev = gas;
|
||||
}
|
||||
|
||||
if ((bus == 0) && (addr == 0x3CA)) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && (addr == 0x3CA)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -100,7 +100,7 @@ static void gm_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
// on powertrain bus.
|
||||
// 384 = ASCMLKASteeringCmd
|
||||
// 715 = ASCMGasRegenCmd
|
||||
if ((bus == 0) && ((addr == 384) || (addr == 715))) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && ((addr == 384) || (addr == 715))) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,7 +104,7 @@ static void honda_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
// if steering controls messages are received on the destination bus, it's an indication
|
||||
// that the relay might be malfunctioning
|
||||
int bus_rdr_car = (board_has_relay()) ? 0 : 2; // radar bus, car side
|
||||
if ((addr == 0xE4) || (addr == 0x194)) {
|
||||
if ((safety_mode_cnt > 1) && ((addr == 0xE4) || (addr == 0x194))) {
|
||||
if ((honda_bosch_hardware && (bus == bus_rdr_car)) ||
|
||||
(!honda_bosch_hardware && (bus == 0))) {
|
||||
relay_malfunction = true;
|
||||
|
|
|
@ -25,7 +25,7 @@ static void hyundai_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
}
|
||||
|
||||
// check if stock camera ECU is on bus 0
|
||||
if ((bus == 0) && (addr == 832)) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && (addr == 832)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -55,7 +55,7 @@ void mazda_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
}
|
||||
|
||||
// if we see wheel speed msgs on MAZDA_CAM bus then relay is closed
|
||||
if ((bus == MAZDA_CAM) && (addr == MAZDA_WHEEL_SPEED)) {
|
||||
if ((safety_mode_cnt > 1) && (bus == MAZDA_CAM) && (addr == MAZDA_WHEEL_SPEED)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ static void subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
subaru_cruise_engaged_last = cruise_engaged;
|
||||
}
|
||||
|
||||
if ((bus == 0) && ((addr == 0x122) || (addr == 0x164))) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && ((addr == 0x122) || (addr == 0x164))) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -92,7 +92,7 @@ static void toyota_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
}
|
||||
|
||||
// 0x2E4 is lkas cmd. If it is on bus 0, then relay is unexpectedly closed
|
||||
if ((addr == 0x2E4) && (bus == 0)) {
|
||||
if ((safety_mode_cnt > 1) && (addr == 0x2E4) && (bus == 0)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ static void volkswagen_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
volkswagen_gas_prev = gas;
|
||||
}
|
||||
|
||||
if ((bus == 0) && (addr == MSG_HCA_01)) {
|
||||
if ((safety_mode_cnt > 1) && (bus == 0) && (addr == MSG_HCA_01)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -272,6 +272,7 @@ void set_honda_fwd_brake(bool c){
|
|||
void init_tests(void){
|
||||
// get HW_TYPE from env variable set in test.sh
|
||||
hw_type = atoi(getenv("HW_TYPE"));
|
||||
safety_mode_cnt = 2U; // avoid ignoring relay_malfunction logic
|
||||
}
|
||||
|
||||
void init_tests_toyota(void){
|
||||
|
|
Loading…
Reference in New Issue