diff --git a/selfdrive/test/test_onroad.py b/selfdrive/test/test_onroad.py index 0bc13a9351..fe7876d1b2 100644 --- a/selfdrive/test/test_onroad.py +++ b/selfdrive/test/test_onroad.py @@ -348,9 +348,14 @@ class TestOnroad: assert np.all(eof_sof_diff > 0) assert np.all(eof_sof_diff < 50*1e6) - # camerad guarantees that all cams start on the same frame ID first_fid = {c: min(self.ts[c]['frameId']) for c in cams} - assert len(set(first_fid.values())) == 1, "Cameras don't start on same frame ID" + if cam.endswith('CameraState'): + # camerad guarantees that all cams start on frame ID 0 + # (note loggerd also needs to start up fast enough to catch it) + assert set(first_fid.values()) == {0, }, "Cameras don't start on frame ID 0" + else: + # encoder guarantees all cams start on the same frame ID + assert len(set(first_fid.values())) == 1, "Cameras don't start on same frame ID" # we don't do a full segment rotation, so these might not match exactly last_fid = {c: max(self.ts[c]['frameId']) for c in cams} diff --git a/system/manager/process_config.py b/system/manager/process_config.py index b9655c83f3..120390ce5f 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -63,19 +63,20 @@ def and_(*fns): procs = [ DaemonProcess("manage_athenad", "system.athena.manage_athenad", "AthenadPid"), + NativeProcess("loggerd", "system/loggerd", ["./loggerd"], logging), + NativeProcess("encoderd", "system/loggerd", ["./encoderd"], only_onroad), + NativeProcess("stream_encoderd", "system/loggerd", ["./encoderd", "--stream"], notcar), + PythonProcess("logmessaged", "system.logmessaged", always_run), + NativeProcess("camerad", "system/camerad", ["./camerad"], driverview, enabled=not WEBCAM), PythonProcess("webcamerad", "tools.webcam.camerad", driverview, enabled=WEBCAM), NativeProcess("logcatd", "system/logcatd", ["./logcatd"], only_onroad), NativeProcess("proclogd", "system/proclogd", ["./proclogd"], only_onroad), - PythonProcess("logmessaged", "system.logmessaged", always_run), PythonProcess("micd", "system.micd", iscar), PythonProcess("timed", "system.timed", always_run, enabled=not PC), # TODO Make python process once TG allows opening QCOM from child proc NativeProcess("dmonitoringmodeld", "selfdrive/modeld", ["./dmonitoringmodeld"], driverview, enabled=(WEBCAM or not PC)), - NativeProcess("encoderd", "system/loggerd", ["./encoderd"], only_onroad), - NativeProcess("stream_encoderd", "system/loggerd", ["./encoderd", "--stream"], notcar), - NativeProcess("loggerd", "system/loggerd", ["./loggerd"], logging), # TODO Make python process once TG allows opening QCOM from child proc NativeProcess("modeld", "selfdrive/modeld", ["./modeld"], only_onroad), NativeProcess("sensord", "system/sensord", ["./sensord"], only_onroad, enabled=not PC),