From ba4c06a566d99310ec5717b79f789e253e9e0a98 Mon Sep 17 00:00:00 2001 From: ZwX1616 Date: Wed, 11 Nov 2020 13:53:11 -0800 Subject: [PATCH] use different SubMasters for driverState/sensorEvents (#2522) * use different sms * rename old-commit-hash: 4954db0381264b84aa238da4f9d429cff49bcf24 --- selfdrive/camerad/cameras/camera_qcom.cc | 14 ++++++++------ selfdrive/camerad/cameras/camera_qcom.h | 3 ++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/selfdrive/camerad/cameras/camera_qcom.cc b/selfdrive/camerad/cameras/camera_qcom.cc index 3e2a4ab978..6efcb2b5fb 100644 --- a/selfdrive/camerad/cameras/camera_qcom.cc +++ b/selfdrive/camerad/cameras/camera_qcom.cc @@ -333,7 +333,8 @@ void cameras_init(MultiCameraState *s, cl_device_id device_id, cl_context ctx) { s->rear.device = s->device; s->front.device = s->device; - s->sm = new SubMaster({"driverState", "sensorEvents"}); + s->sm_front = new SubMaster({"driverState"}); + s->sm_rear = new SubMaster({"sensorEvents"}); s->pm = new PubMaster({"frame", "frontFrame", "thumbnail"}); int err; @@ -2046,7 +2047,7 @@ static void* ops_thread(void* arg) { } void camera_process_front(MultiCameraState *s, CameraState *c, int cnt) { - common_camera_process_front(s->sm, s->pm, c, cnt); + common_camera_process_front(s->sm_front, s->pm, c, cnt); } // called by processing_thread @@ -2055,11 +2056,11 @@ void camera_process_frame(MultiCameraState *s, CameraState *c, int cnt) { // cache rgb roi and write to cl // gz compensation - s->sm->update(0); - if (s->sm->updated("sensorEvents")) { + s->sm_rear->update(0); + if (s->sm_rear->updated("sensorEvents")) { float vals[3] = {0.0}; bool got_accel = false; - auto sensor_events = (*(s->sm))["sensorEvents"].getSensorEvents(); + auto sensor_events = (*(s->sm_rear))["sensorEvents"].getSensorEvents(); for (auto sensor_event : sensor_events) { if (sensor_event.which() == cereal::SensorEventData::ACCELERATION) { auto v = sensor_event.getAcceleration().getV(); @@ -2291,6 +2292,7 @@ void cameras_close(MultiCameraState *s) { clReleaseProgram(s->prg_rgb_laplacian); clReleaseKernel(s->krnl_rgb_laplacian); - delete s->sm; + delete s->sm_front; + delete s->sm_rear; delete s->pm; } diff --git a/selfdrive/camerad/cameras/camera_qcom.h b/selfdrive/camerad/cameras/camera_qcom.h index 49afb0f668..63a4281202 100644 --- a/selfdrive/camerad/cameras/camera_qcom.h +++ b/selfdrive/camerad/cameras/camera_qcom.h @@ -142,7 +142,8 @@ typedef struct MultiCameraState { CameraState rear; CameraState front; - SubMaster *sm; + SubMaster *sm_front; + SubMaster *sm_rear; PubMaster *pm; } MultiCameraState;