@@ -97,9 +97,10 @@ def _brake_msg(self, brake):
97
97
to_send [0 ].RDHR |= toyota_checksum (to_send [0 ], 0x226 , 8 ) << 24
98
98
return to_send
99
99
100
- def _send_gas_msg (self , gas ):
101
- to_send = make_msg (0 , 0x2C1 )
102
- to_send [0 ].RDHR = (gas & 0xFF ) << 16
100
+ def _gas_pressed_msg (self , pressed , enable_cruise = False ):
101
+ to_send = make_msg (0 , 0x1D2 )
102
+ to_send [0 ].RDLR = ((1 * (not pressed )) << 4 ) | (1 * enable_cruise << 5 )
103
+ to_send [0 ].RDHR = (toyota_checksum (to_send [0 ], 0x1D2 , 8 ) << 24 )
103
104
return to_send
104
105
105
106
def _send_interceptor_msg (self , gas , addr ):
@@ -139,9 +140,9 @@ def test_disable_control_allowed_from_cruise(self):
139
140
self .assertFalse (self .safety .get_controls_allowed ())
140
141
141
142
def test_prev_gas (self ):
142
- for g in range ( 0 , 256 ) :
143
- self .safety .safety_rx_hook (self ._send_gas_msg ( g ))
144
- self .assertEqual (True if g > 0 else False , self .safety .get_gas_pressed_prev ())
143
+ for pressed in [ True , False ] :
144
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( pressed ))
145
+ self .assertEqual (pressed , self .safety .get_gas_pressed_prev ())
145
146
146
147
def test_prev_gas_interceptor (self ):
147
148
self .safety .safety_rx_hook (self ._send_interceptor_msg (0x0 , 0x201 ))
@@ -152,26 +153,27 @@ def test_prev_gas_interceptor(self):
152
153
self .safety .set_gas_interceptor_detected (False )
153
154
154
155
def test_disengage_on_gas (self ):
155
- self .safety .safety_rx_hook (self ._send_gas_msg ( 0 ))
156
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( False ))
156
157
self .safety .set_controls_allowed (True )
157
- self .safety .safety_rx_hook (self ._send_gas_msg ( 1 ))
158
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( True , enable_cruise = True ))
158
159
self .assertFalse (self .safety .get_controls_allowed ())
159
160
160
161
def test_unsafe_mode_no_disengage_on_gas (self ):
161
- self .safety .safety_rx_hook (self ._send_gas_msg ( 0 ))
162
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( False ))
162
163
self .safety .set_controls_allowed (True )
163
164
self .safety .set_unsafe_mode (UNSAFE_MODE .DISABLE_DISENGAGE_ON_GAS )
164
- self .safety .safety_rx_hook (self ._send_gas_msg ( 1 ))
165
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( True , enable_cruise = True ))
165
166
self .assertTrue (self .safety .get_controls_allowed ())
166
167
self .safety .set_unsafe_mode (UNSAFE_MODE .DEFAULT )
167
168
168
169
def test_allow_engage_with_gas_pressed (self ):
169
- self .safety .safety_rx_hook (self ._send_gas_msg ( 1 ))
170
+ self .safety .safety_rx_hook (self ._gas_pressed_msg ( True ))
170
171
self .safety .set_controls_allowed (True )
171
- self .safety .safety_rx_hook (self ._send_gas_msg (1 ))
172
- self .assertTrue (self .safety .get_controls_allowed ())
173
- self .safety .safety_rx_hook (self ._send_gas_msg (1 ))
174
- self .assertTrue (self .safety .get_controls_allowed ())
172
+ for _ in range (2 ):
173
+ # since cruise msg is used for gas pedal state, cruise bit must
174
+ # also be set for this test or else it will set controls_allowed
175
+ self .safety .safety_rx_hook (self ._gas_pressed_msg (True , enable_cruise = True ))
176
+ self .assertTrue (self .safety .get_controls_allowed ())
175
177
176
178
def test_disengage_on_gas_interceptor (self ):
177
179
for g in range (0 , 0x1000 ):
0 commit comments