cleanup old sm pm args (#30241)

* cleanup sm pm

* fix controlsd

* fix
pull/30274/head
Adeeb Shihadeh 2 years ago committed by GitHub
parent 9e24a11f17
commit b68cfbb332
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 36
      selfdrive/controls/controlsd.py
  2. 15
      selfdrive/controls/plannerd.py
  3. 5
      selfdrive/locationd/laikad.py
  4. 8
      selfdrive/locationd/paramsd.py
  5. 9
      selfdrive/locationd/torqued.py
  6. 13
      selfdrive/monitoring/dmonitoringd.py
  7. 8
      selfdrive/navd/navd.py
  8. 11
      system/micd.py

@ -56,39 +56,33 @@ ENABLED_STATES = (State.preEnabled, *ACTIVE_STATES)
class Controls: class Controls:
def __init__(self, sm=None, pm=None, can_sock=None, CI=None): def __init__(self, CI=None):
config_realtime_process(4, Priority.CTRL_HIGH) config_realtime_process(4, Priority.CTRL_HIGH)
# Ensure the current branch is cached, otherwise the first iteration of controlsd lags # Ensure the current branch is cached, otherwise the first iteration of controlsd lags
self.branch = get_short_branch("") self.branch = get_short_branch("")
# Setup sockets # Setup sockets
self.pm = pm self.pm = messaging.PubMaster(['sendcan', 'controlsState', 'carState',
if self.pm is None: 'carControl', 'carEvents', 'carParams'])
self.pm = messaging.PubMaster(['sendcan', 'controlsState', 'carState',
'carControl', 'carEvents', 'carParams'])
self.sensor_packets = ["accelerometer", "gyroscope"] self.sensor_packets = ["accelerometer", "gyroscope"]
self.camera_packets = ["roadCameraState", "driverCameraState", "wideRoadCameraState"] self.camera_packets = ["roadCameraState", "driverCameraState", "wideRoadCameraState"]
self.can_sock = can_sock can_timeout = None if os.environ.get('NO_CAN_TIMEOUT', False) else 20
if can_sock is None: self.can_sock = messaging.sub_sock('can', timeout=can_timeout)
can_timeout = None if os.environ.get('NO_CAN_TIMEOUT', False) else 20
self.can_sock = messaging.sub_sock('can', timeout=can_timeout)
self.log_sock = messaging.sub_sock('androidLog') self.log_sock = messaging.sub_sock('androidLog')
self.params = Params() self.params = Params()
self.sm = sm ignore = self.sensor_packets + ['testJoystick']
if self.sm is None: if SIMULATION:
ignore = self.sensor_packets + ['testJoystick'] ignore += ['driverCameraState', 'managerState']
if SIMULATION: self.sm = messaging.SubMaster(['deviceState', 'pandaStates', 'peripheralState', 'modelV2', 'liveCalibration',
ignore += ['driverCameraState', 'managerState'] 'driverMonitoringState', 'longitudinalPlan', 'lateralPlan', 'liveLocationKalman',
self.sm = messaging.SubMaster(['deviceState', 'pandaStates', 'peripheralState', 'modelV2', 'liveCalibration', 'managerState', 'liveParameters', 'radarState', 'liveTorqueParameters',
'driverMonitoringState', 'longitudinalPlan', 'lateralPlan', 'liveLocationKalman', 'testJoystick'] + self.camera_packets + self.sensor_packets,
'managerState', 'liveParameters', 'radarState', 'liveTorqueParameters', ignore_alive=ignore, ignore_avg_freq=['radarState', 'testJoystick'])
'testJoystick'] + self.camera_packets + self.sensor_packets,
ignore_alive=ignore, ignore_avg_freq=['radarState', 'testJoystick'])
if CI is None: if CI is None:
# wait for one pandaState and one CAN packet # wait for one pandaState and one CAN packet
@ -879,8 +873,8 @@ class Controls:
self.prof.display() self.prof.display()
def main(sm=None, pm=None, logcan=None): def main():
controls = Controls(sm, pm, logcan) controls = Controls()
controls.controlsd_thread() controls.controlsd_thread()

@ -27,7 +27,7 @@ def publish_ui_plan(sm, pm, lateral_planner, longitudinal_planner):
uiPlan.accel = longitudinal_planner.a_desired_trajectory_full.tolist() uiPlan.accel = longitudinal_planner.a_desired_trajectory_full.tolist()
pm.send('uiPlan', ui_send) pm.send('uiPlan', ui_send)
def plannerd_thread(sm=None, pm=None): def plannerd_thread():
config_realtime_process(5, Priority.CTRL_LOW) config_realtime_process(5, Priority.CTRL_LOW)
cloudlog.info("plannerd is waiting for CarParams") cloudlog.info("plannerd is waiting for CarParams")
@ -41,12 +41,9 @@ def plannerd_thread(sm=None, pm=None):
longitudinal_planner = LongitudinalPlanner(CP) longitudinal_planner = LongitudinalPlanner(CP)
lateral_planner = LateralPlanner(CP, debug=debug_mode) lateral_planner = LateralPlanner(CP, debug=debug_mode)
if sm is None: pm = messaging.PubMaster(['longitudinalPlan', 'lateralPlan', 'uiPlan'])
sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'radarState', 'modelV2'], sm = messaging.SubMaster(['carControl', 'carState', 'controlsState', 'radarState', 'modelV2'],
poll=['radarState', 'modelV2'], ignore_avg_freq=['radarState']) poll=['radarState', 'modelV2'], ignore_avg_freq=['radarState'])
if pm is None:
pm = messaging.PubMaster(['longitudinalPlan', 'lateralPlan', 'uiPlan'])
while True: while True:
sm.update() sm.update()
@ -58,8 +55,8 @@ def plannerd_thread(sm=None, pm=None):
longitudinal_planner.publish(sm, pm) longitudinal_planner.publish(sm, pm)
publish_ui_plan(sm, pm, lateral_planner, longitudinal_planner) publish_ui_plan(sm, pm, lateral_planner, longitudinal_planner)
def main(sm=None, pm=None): def main():
plannerd_thread(sm, pm) plannerd_thread()
if __name__ == "__main__": if __name__ == "__main__":

@ -440,7 +440,7 @@ def clear_tmp_cache():
os.mkdir(Paths.download_cache_root()) os.mkdir(Paths.download_cache_root())
def main(sm=None, pm=None): def main():
#clear_tmp_cache() #clear_tmp_cache()
use_qcom = not Params().get_bool("UbloxAvailable") use_qcom = not Params().get_bool("UbloxAvailable")
@ -449,8 +449,7 @@ def main(sm=None, pm=None):
else: else:
raw_name = "ubloxGnss" raw_name = "ubloxGnss"
raw_gnss_sock = messaging.sub_sock(raw_name, conflate=False) raw_gnss_sock = messaging.sub_sock(raw_name, conflate=False)
if pm is None: pm = messaging.PubMaster(['gnssMeasurements'])
pm = messaging.PubMaster(['gnssMeasurements'])
# disable until set as main gps source, to better analyze startup time # disable until set as main gps source, to better analyze startup time
# TODO ensure low CPU usage before enabling # TODO ensure low CPU usage before enabling

@ -117,16 +117,14 @@ def check_valid_with_hysteresis(current_valid: bool, val: float, threshold: floa
return current_valid return current_valid
def main(sm=None, pm=None): def main():
config_realtime_process([0, 1, 2, 3], 5) config_realtime_process([0, 1, 2, 3], 5)
DEBUG = bool(int(os.getenv("DEBUG", "0"))) DEBUG = bool(int(os.getenv("DEBUG", "0")))
REPLAY = bool(int(os.getenv("REPLAY", "0"))) REPLAY = bool(int(os.getenv("REPLAY", "0")))
if sm is None: pm = messaging.PubMaster(['liveParameters'])
sm = messaging.SubMaster(['liveLocationKalman', 'carState'], poll=['liveLocationKalman']) sm = messaging.SubMaster(['liveLocationKalman', 'carState'], poll=['liveLocationKalman'])
if pm is None:
pm = messaging.PubMaster(['liveParameters'])
params_reader = Params() params_reader = Params()
# wait for stats about the car to come in from controls # wait for stats about the car to come in from controls

@ -218,14 +218,11 @@ class TorqueEstimator:
return msg return msg
def main(sm=None, pm=None): def main():
config_realtime_process([0, 1, 2, 3], 5) config_realtime_process([0, 1, 2, 3], 5)
if sm is None: pm = messaging.PubMaster(['liveTorqueParameters'])
sm = messaging.SubMaster(['carControl', 'carState', 'liveLocationKalman'], poll=['liveLocationKalman']) sm = messaging.SubMaster(['carControl', 'carState', 'liveLocationKalman'], poll=['liveLocationKalman'])
if pm is None:
pm = messaging.PubMaster(['liveTorqueParameters'])
params = Params() params = Params()
with car.CarParams.from_bytes(params.get("CarParams", block=True)) as CP: with car.CarParams.from_bytes(params.get("CarParams", block=True)) as CP:

@ -10,15 +10,12 @@ from openpilot.selfdrive.controls.lib.events import Events
from openpilot.selfdrive.monitoring.driver_monitor import DriverStatus from openpilot.selfdrive.monitoring.driver_monitor import DriverStatus
def dmonitoringd_thread(sm=None, pm=None): def dmonitoringd_thread():
gc.disable() gc.disable()
set_realtime_priority(2) set_realtime_priority(2)
if pm is None: pm = messaging.PubMaster(['driverMonitoringState'])
pm = messaging.PubMaster(['driverMonitoringState']) sm = messaging.SubMaster(['driverStateV2', 'liveCalibration', 'carState', 'controlsState', 'modelV2'], poll=['driverStateV2'])
if sm is None:
sm = messaging.SubMaster(['driverStateV2', 'liveCalibration', 'carState', 'controlsState', 'modelV2'], poll=['driverStateV2'])
driver_status = DriverStatus(rhd_saved=Params().get_bool("IsRhdDetected")) driver_status = DriverStatus(rhd_saved=Params().get_bool("IsRhdDetected"))
@ -89,8 +86,8 @@ def dmonitoringd_thread(sm=None, pm=None):
driver_status.wheel_on_right == (driver_status.wheelpos_learner.filtered_stat.M > driver_status.settings._WHEELPOS_THRESHOLD)): driver_status.wheel_on_right == (driver_status.wheelpos_learner.filtered_stat.M > driver_status.settings._WHEELPOS_THRESHOLD)):
put_bool_nonblocking("IsRhdDetected", driver_status.wheel_on_right) put_bool_nonblocking("IsRhdDetected", driver_status.wheel_on_right)
def main(sm=None, pm=None): def main():
dmonitoringd_thread(sm, pm) dmonitoringd_thread()
if __name__ == '__main__': if __name__ == '__main__':

@ -344,11 +344,9 @@ class RouteEngine:
# TODO: Check for going wrong way in segment # TODO: Check for going wrong way in segment
def main(sm=None, pm=None): def main():
if sm is None: pm = messaging.PubMaster(['navInstruction', 'navRoute'])
sm = messaging.SubMaster(['liveLocationKalman', 'managerState']) sm = messaging.SubMaster(['liveLocationKalman', 'managerState'])
if pm is None:
pm = messaging.PubMaster(['navInstruction', 'navRoute'])
rk = Ratekeeper(1.0) rk = Ratekeeper(1.0)
route_engine = RouteEngine(sm, pm) route_engine = RouteEngine(sm, pm)

@ -40,9 +40,9 @@ def apply_a_weighting(measurements: np.ndarray) -> np.ndarray:
class Mic: class Mic:
def __init__(self, pm): def __init__(self):
self.pm = pm
self.rk = Ratekeeper(RATE) self.rk = Ratekeeper(RATE)
self.pm = messaging.PubMaster(['microphone'])
self.measurements = np.empty(0) self.measurements = np.empty(0)
@ -93,11 +93,8 @@ class Mic:
self.update() self.update()
def main(pm=None): def main():
if pm is None: mic = Mic()
pm = messaging.PubMaster(['microphone'])
mic = Mic(pm)
mic.micd_thread() mic.micd_thread()

Loading…
Cancel
Save