Skip to content

Commit 595685a

Browse files
committed
Revert "safety: pull out cam -> pt fwd blocking (#1785)"
This reverts commit af1e63f.
1 parent 0dc30f0 commit 595685a

File tree

6 files changed

+23
-22
lines changed

6 files changed

+23
-22
lines changed

opendbc/safety/safety.h

+1-10
Original file line numberDiff line numberDiff line change
@@ -246,16 +246,7 @@ bool safety_tx_hook(CANPacket_t *to_send) {
246246
}
247247

248248
int safety_fwd_hook(int bus_num, int addr) {
249-
bool blocked = false;
250-
for (int i = 0; i < current_safety_config.tx_msgs_len; i++) {
251-
const CanMsg *m = &current_safety_config.tx_msgs[i];
252-
if ((bus_num == 2) && (m->addr == addr) && m->block_from_cam) {
253-
blocked = true;
254-
break;
255-
}
256-
}
257-
258-
return ((relay_malfunction || blocked) ? -1 : current_hooks->fwd(bus_num, addr));
249+
return (relay_malfunction ? -1 : current_hooks->fwd(bus_num, addr));
259250
}
260251

261252
bool get_longitudinal_allowed(void) {

opendbc/safety/safety/safety_mazda.h

+5-4
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,15 @@ static bool mazda_tx_hook(const CANPacket_t *to_send) {
9292
}
9393

9494
static int mazda_fwd_hook(int bus, int addr) {
95-
UNUSED(addr);
96-
9795
int bus_fwd = -1;
9896

9997
if (bus == MAZDA_MAIN) {
10098
bus_fwd = MAZDA_CAM;
10199
} else if (bus == MAZDA_CAM) {
102-
bus_fwd = MAZDA_MAIN;
100+
bool block = (addr == MAZDA_LKAS) || (addr == MAZDA_LKAS_HUD);
101+
if (!block) {
102+
bus_fwd = MAZDA_MAIN;
103+
}
103104
} else {
104105
// don't fwd
105106
}
@@ -108,7 +109,7 @@ static int mazda_fwd_hook(int bus, int addr) {
108109
}
109110

110111
static safety_config mazda_init(uint16_t param) {
111-
static const CanMsg MAZDA_TX_MSGS[] = {{MAZDA_LKAS, 0, 8, true}, {MAZDA_CRZ_BTNS, 0, 8}, {MAZDA_LKAS_HUD, 0, 8, true}};
112+
static const CanMsg MAZDA_TX_MSGS[] = {{MAZDA_LKAS, 0, 8}, {MAZDA_CRZ_BTNS, 0, 8}, {MAZDA_LKAS_HUD, 0, 8}};
112113

113114
static RxCheck mazda_rx_checks[] = {
114115
{.msg = {{MAZDA_CRZ_CTRL, 0, 8, .frequency = 50U}, { 0 }, { 0 }}},

opendbc/safety/safety/safety_tesla.h

+6-2
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,10 @@ static int tesla_fwd_hook(int bus_num, int addr) {
158158

159159
if (bus_num == 2) {
160160
bool block_msg = false;
161+
// DAS_steeringControl, APS_eacMonitor
162+
if ((addr == 0x488) || (addr == 0x27d)) {
163+
block_msg = true;
164+
}
161165

162166
// DAS_control
163167
if (tesla_longitudinal && (addr == 0x2b9) && !tesla_stock_aeb) {
@@ -175,9 +179,9 @@ static int tesla_fwd_hook(int bus_num, int addr) {
175179
static safety_config tesla_init(uint16_t param) {
176180

177181
static const CanMsg TESLA_M3_Y_TX_MSGS[] = {
182+
{0x488, 0, 4}, // DAS_steeringControl
178183
{0x2b9, 0, 8}, // DAS_control
179-
{0x27D, 0, 3, true}, // APS_eacMonitor
180-
{0x488, 0, 4, true}, // DAS_steeringControl
184+
{0x27D, 0, 3}, // APS_eacMonitor
181185
};
182186

183187
UNUSED(param);

opendbc/safety/safety/safety_toyota.h

+10-4
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44

55
// Stock longitudinal
66
#define TOYOTA_BASE_TX_MSGS \
7-
{0x191, 0, 8, true}, {0x412, 0, 8, true}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \
7+
{0x191, 0, 8}, {0x412, 0, 8}, {0x343, 0, 8}, {0x1D2, 0, 8}, /* LKAS + LTA + ACC & PCM cancel cmds */ \
88

99
#define TOYOTA_COMMON_TX_MSGS \
1010
TOYOTA_BASE_TX_MSGS \
11-
{0x2E4, 0, 5, true}, \
11+
{0x2E4, 0, 5}, \
1212

1313
#define TOYOTA_COMMON_SECOC_TX_MSGS \
1414
TOYOTA_BASE_TX_MSGS \
15-
{0x2E4, 0, 8, true}, {0x131, 0, 8, true}, \
15+
{0x2E4, 0, 8}, {0x131, 0, 8}, \
1616

1717
#define TOYOTA_COMMON_LONG_TX_MSGS \
1818
TOYOTA_COMMON_TX_MSGS \
@@ -386,8 +386,14 @@ static int toyota_fwd_hook(int bus_num, int addr) {
386386
}
387387

388388
if (bus_num == 2) {
389+
// block stock lkas messages and stock acc messages (if OP is doing ACC)
390+
// in TSS2, 0x191 is LTA which we need to block to avoid controls collision
391+
bool is_lkas_msg = ((addr == 0x2E4) || (addr == 0x412) || (addr == 0x191));
392+
// on SecOC cars 0x131 is also LTA
393+
is_lkas_msg |= toyota_secoc && (addr == 0x131);
389394
// in TSS2 the camera does ACC as well, so filter 0x343
390-
bool block_msg = ((addr == 0x343) && !toyota_stock_longitudinal);
395+
bool is_acc_msg = (addr == 0x343);
396+
bool block_msg = is_lkas_msg || (is_acc_msg && !toyota_stock_longitudinal);
391397
if (!block_msg) {
392398
bus_fwd = 0;
393399
}

opendbc/safety/safety_declarations.h

-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ typedef struct {
4949
int addr;
5050
int bus;
5151
int len;
52-
bool block_from_cam;
5352
} CanMsg;
5453

5554
typedef enum {

opendbc/safety/tests/misra/test_mutation.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
# default
2020
(None, None, False),
2121
# general safety
22-
("opendbc/safety/safety/safety_honda.h", "s/is_lkas_msg =.*;/is_lkas_msg = addr == 1 || addr == 2;/g", True),
22+
("opendbc/safety/safety/safety_toyota.h", "s/is_lkas_msg =.*;/is_lkas_msg = addr == 1 || addr == 2;/g", True),
2323
]
2424

2525
patterns = [

0 commit comments

Comments
 (0)