Fix msg checks for non Honda and Toyota (#426)
parent
3b35621671
commit
f67ec28e3f
|
@ -148,20 +148,20 @@ bool addr_safety_check(CAN_FIFOMailBox_TypeDef *to_push,
|
|||
|
||||
if (index != -1) {
|
||||
// checksum check
|
||||
if ((get_checksum != NULL) && (compute_checksum != NULL)) {
|
||||
if (rx_checks[index].check_checksum) {
|
||||
if ((get_checksum != NULL) && (compute_checksum != NULL) && rx_checks[index].check_checksum) {
|
||||
uint8_t checksum = get_checksum(to_push);
|
||||
uint8_t checksum_comp = compute_checksum(to_push);
|
||||
rx_checks[index].valid_checksum = checksum_comp == checksum;
|
||||
}
|
||||
} else {
|
||||
rx_checks[index].valid_checksum = true;
|
||||
}
|
||||
|
||||
// counter check
|
||||
if (get_counter != NULL) {
|
||||
if (rx_checks[index].max_counter > 0U) {
|
||||
// counter check (max_counter == 0 means skip check)
|
||||
if ((get_counter != NULL) && (rx_checks[index].max_counter > 0U)) {
|
||||
uint8_t counter = get_counter(to_push);
|
||||
update_counter(rx_checks, index, counter);
|
||||
}
|
||||
} else {
|
||||
rx_checks[index].wrong_counters = 0U;
|
||||
}
|
||||
}
|
||||
return is_msg_valid(rx_checks, index);
|
||||
|
|
|
@ -20,6 +20,11 @@ uint32_t chrysler_ts_last = 0;
|
|||
struct sample_t chrysler_torque_meas; // last few torques measured
|
||||
|
||||
static int chrysler_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, chrysler_rx_checks, CHRYSLER_RX_CHECK_LEN,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
|
@ -49,7 +54,8 @@ static int chrysler_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == 0) && (addr == 0x292)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
static int chrysler_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
|
|
@ -42,6 +42,11 @@ uint32_t gm_ts_last = 0;
|
|||
struct sample_t gm_torque_driver; // last few driver torques measured
|
||||
|
||||
static int gm_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, gm_rx_checks, GM_RX_CHECK_LEN,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
|
@ -113,7 +118,8 @@ static int gm_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == 0) && ((addr == 384) || (addr == 715))) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
// all commands: gas/regen, friction brake and steering
|
||||
|
|
|
@ -21,6 +21,11 @@ uint32_t hyundai_ts_last = 0;
|
|||
struct sample_t hyundai_torque_driver; // last few driver torques measured
|
||||
|
||||
static int hyundai_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, hyundai_rx_checks, HYUNDAI_RX_CHECK_LEN,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
|
@ -49,7 +54,8 @@ static int hyundai_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == 0) && (addr == 832)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
static int hyundai_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
|
|
@ -24,6 +24,11 @@ uint32_t subaru_ts_last = 0;
|
|||
struct sample_t subaru_torque_driver; // last few driver torques measured
|
||||
|
||||
static int subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, subaru_rx_checks, SUBARU_RX_CHECK_LEN,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
|
@ -53,7 +58,8 @@ static int subaru_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == 0) && ((addr == 0x122) || (addr == 0x164))) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
static int subaru_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
|
|
@ -33,6 +33,11 @@ uint32_t volkswagen_ts_last = 0;
|
|||
int volkswagen_gas_prev = 0;
|
||||
|
||||
static int volkswagen_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
||||
|
||||
bool valid = addr_safety_check(to_push, volkswagen_rx_checks, VOLKSWAGEN_RX_CHECK_LEN,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
if (valid) {
|
||||
int bus = GET_BUS(to_push);
|
||||
int addr = GET_ADDR(to_push);
|
||||
|
||||
|
@ -68,7 +73,8 @@ static int volkswagen_rx_hook(CAN_FIFOMailBox_TypeDef *to_push) {
|
|||
if ((safety_mode_cnt > RELAY_TRNS_TIMEOUT) && (bus == 0) && (addr == MSG_HCA_01)) {
|
||||
relay_malfunction = true;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
return valid;
|
||||
}
|
||||
|
||||
static int volkswagen_tx_hook(CAN_FIFOMailBox_TypeDef *to_send) {
|
||||
|
|
Loading…
Reference in New Issue