|
|
@ -68,7 +68,7 @@ class SelfdriveD: |
|
|
|
# TODO: de-couple selfdrived with card/conflate on carState without introducing controls mismatches |
|
|
|
# TODO: de-couple selfdrived with card/conflate on carState without introducing controls mismatches |
|
|
|
self.car_state_sock = messaging.sub_sock('carState', timeout=20) |
|
|
|
self.car_state_sock = messaging.sub_sock('carState', timeout=20) |
|
|
|
|
|
|
|
|
|
|
|
ignore = self.sensor_packets + self.gps_packets + ['alertDebug'] |
|
|
|
ignore = self.sensor_packets + self.gps_packets + ['alertDebug', 'userFlag'] |
|
|
|
if SIMULATION: |
|
|
|
if SIMULATION: |
|
|
|
ignore += ['driverCameraState', 'managerState'] |
|
|
|
ignore += ['driverCameraState', 'managerState'] |
|
|
|
if REPLAY: |
|
|
|
if REPLAY: |
|
|
@ -77,7 +77,7 @@ class SelfdriveD: |
|
|
|
self.sm = messaging.SubMaster(['deviceState', 'pandaStates', 'peripheralState', 'modelV2', 'liveCalibration', |
|
|
|
self.sm = messaging.SubMaster(['deviceState', 'pandaStates', 'peripheralState', 'modelV2', 'liveCalibration', |
|
|
|
'carOutput', 'driverMonitoringState', 'longitudinalPlan', 'livePose', 'liveDelay', |
|
|
|
'carOutput', 'driverMonitoringState', 'longitudinalPlan', 'livePose', 'liveDelay', |
|
|
|
'managerState', 'liveParameters', 'radarState', 'liveTorqueParameters', |
|
|
|
'managerState', 'liveParameters', 'radarState', 'liveTorqueParameters', |
|
|
|
'controlsState', 'carControl', 'driverAssistance', 'alertDebug'] + \ |
|
|
|
'controlsState', 'carControl', 'driverAssistance', 'alertDebug', 'userFlag'] + \ |
|
|
|
self.camera_packets + self.sensor_packets + self.gps_packets, |
|
|
|
self.camera_packets + self.sensor_packets + self.gps_packets, |
|
|
|
ignore_alive=ignore, ignore_avg_freq=ignore, |
|
|
|
ignore_alive=ignore, ignore_avg_freq=ignore, |
|
|
|
ignore_valid=ignore, frequency=int(1/DT_CTRL)) |
|
|
|
ignore_valid=ignore, frequency=int(1/DT_CTRL)) |
|
|
@ -365,13 +365,17 @@ class SelfdriveD: |
|
|
|
if self.sm['modelV2'].frameDropPerc > 20: |
|
|
|
if self.sm['modelV2'].frameDropPerc > 20: |
|
|
|
self.events.add(EventName.modeldLagging) |
|
|
|
self.events.add(EventName.modeldLagging) |
|
|
|
|
|
|
|
|
|
|
|
# decrement personality on distance button press |
|
|
|
# Decrement personality on distance button press |
|
|
|
if self.CP.openpilotLongitudinalControl: |
|
|
|
if self.CP.openpilotLongitudinalControl: |
|
|
|
if any(not be.pressed and be.type == ButtonType.gapAdjustCruise for be in CS.buttonEvents): |
|
|
|
if any(not be.pressed and be.type == ButtonType.gapAdjustCruise for be in CS.buttonEvents): |
|
|
|
self.personality = (self.personality - 1) % 3 |
|
|
|
self.personality = (self.personality - 1) % 3 |
|
|
|
self.params.put_nonblocking('LongitudinalPersonality', str(self.personality)) |
|
|
|
self.params.put_nonblocking('LongitudinalPersonality', str(self.personality)) |
|
|
|
self.events.add(EventName.personalityChanged) |
|
|
|
self.events.add(EventName.personalityChanged) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Check for user flag (bookmark) press |
|
|
|
|
|
|
|
if self.sm.updated['userFlag']: |
|
|
|
|
|
|
|
self.events.add(EventName.userFlag) |
|
|
|
|
|
|
|
|
|
|
|
def data_sample(self): |
|
|
|
def data_sample(self): |
|
|
|
car_state = messaging.recv_one(self.car_state_sock) |
|
|
|
car_state = messaging.recv_one(self.car_state_sock) |
|
|
|
CS = car_state.carState if car_state else self.CS_prev |
|
|
|
CS = car_state.carState if car_state else self.CS_prev |
|
|
|