|
|
|
@ -150,7 +150,7 @@ class Controls: |
|
|
|
|
self.v_cruise_kph_last = 0 |
|
|
|
|
self.mismatch_counter = 0 |
|
|
|
|
self.cruise_mismatch_counter = 0 |
|
|
|
|
self.can_error_counter = 0 |
|
|
|
|
self.can_rcv_error_counter = 0 |
|
|
|
|
self.last_blinker_frame = 0 |
|
|
|
|
self.saturated_count = 0 |
|
|
|
|
self.distance_traveled = 0 |
|
|
|
@ -253,7 +253,7 @@ class Controls: |
|
|
|
|
LaneChangeState.laneChangeFinishing]: |
|
|
|
|
self.events.add(EventName.laneChange) |
|
|
|
|
|
|
|
|
|
if self.can_rcv_error or not CS.canValid: |
|
|
|
|
if not CS.canValid: |
|
|
|
|
self.events.add(EventName.canError) |
|
|
|
|
|
|
|
|
|
for i, pandaState in enumerate(self.sm['pandaStates']): |
|
|
|
@ -273,7 +273,7 @@ class Controls: |
|
|
|
|
self.events.add(EventName.radarFault) |
|
|
|
|
elif not self.sm.valid["pandaStates"]: |
|
|
|
|
self.events.add(EventName.usbError) |
|
|
|
|
elif not self.sm.all_alive_and_valid(): |
|
|
|
|
elif not self.sm.all_alive_and_valid() or self.can_rcv_error: |
|
|
|
|
self.events.add(EventName.commIssue) |
|
|
|
|
if not self.logged_comm_issue: |
|
|
|
|
invalid = [s for s, valid in self.sm.valid.items() if not valid] |
|
|
|
@ -378,7 +378,7 @@ class Controls: |
|
|
|
|
|
|
|
|
|
# Check for CAN timeout |
|
|
|
|
if not can_strs: |
|
|
|
|
self.can_error_counter += 1 |
|
|
|
|
self.can_rcv_error_counter += 1 |
|
|
|
|
self.can_rcv_error = True |
|
|
|
|
else: |
|
|
|
|
self.can_rcv_error = False |
|
|
|
@ -663,7 +663,7 @@ class Controls: |
|
|
|
|
controlsState.cumLagMs = -self.rk.remaining * 1000. |
|
|
|
|
controlsState.startMonoTime = int(start_time * 1e9) |
|
|
|
|
controlsState.forceDecel = bool(force_decel) |
|
|
|
|
controlsState.canErrorCounter = self.can_error_counter |
|
|
|
|
controlsState.canErrorCounter = self.can_rcv_error_counter |
|
|
|
|
|
|
|
|
|
if self.joystick_mode: |
|
|
|
|
controlsState.lateralControlState.debugState = lac_log |
|
|
|
|