From 4abd8988e459f03d1c742be0a0081c4c2ad6f2fb Mon Sep 17 00:00:00 2001 From: iejMac <61431446+iejMac@users.noreply.github.com> Date: Thu, 22 Apr 2021 22:13:32 -0700 Subject: [PATCH] cereal: SubMaster refactor, update is now void (#20730) * cereal: SubMaster refactor, update is now void * bump cereal * mistake * update void * checks * semicolon * Update selfdrive/camerad/cameras/camera_frame_stream.cc Co-authored-by: Adeeb Shihadeh * check sensorEvent * update cereal Co-authored-by: Adeeb Shihadeh old-commit-hash: 4866a39244c59f540895ad64103e13f7c41a3cc8 --- cereal | 2 +- .../camerad/cameras/camera_frame_stream.cc | 39 ++++++++++--------- selfdrive/camerad/cameras/camera_qcom.cc | 3 +- selfdrive/modeld/modeld.cc | 13 +++---- selfdrive/sensord/sensors_qcom.cc | 3 +- 5 files changed, 31 insertions(+), 29 deletions(-) diff --git a/cereal b/cereal index 9c56c531c6..8e5eb3ba4d 160000 --- a/cereal +++ b/cereal @@ -1 +1 @@ -Subproject commit 9c56c531c6b1c6dbf6d22377fbb2eb75309d1e91 +Subproject commit 8e5eb3ba4db9975e3370f3e4f5e60c0e7b73d078 diff --git a/selfdrive/camerad/cameras/camera_frame_stream.cc b/selfdrive/camerad/cameras/camera_frame_stream.cc index 443461edf1..55de33874b 100644 --- a/selfdrive/camerad/cameras/camera_frame_stream.cc +++ b/selfdrive/camerad/cameras/camera_frame_stream.cc @@ -49,25 +49,26 @@ void run_frame_stream(CameraState &camera, const char* frame_pkt) { size_t buf_idx = 0; while (!do_exit) { - if (sm.update(1000) == 0) continue; - - auto msg = static_cast(sm[frame_pkt]); - auto frame = msg.get(frame_pkt).as(); - camera.buf.camera_bufs_metadata[buf_idx] = { - .frame_id = frame.get("frameId").as(), - .timestamp_eof = frame.get("timestampEof").as(), - .frame_length = frame.get("frameLength").as(), - .integ_lines = frame.get("integLines").as(), - .global_gain = frame.get("globalGain").as(), - }; - - cl_command_queue q = camera.buf.camera_bufs[buf_idx].copy_q; - cl_mem yuv_cl = camera.buf.camera_bufs[buf_idx].buf_cl; - - auto image = frame.get("image").as(); - clEnqueueWriteBuffer(q, yuv_cl, CL_TRUE, 0, image.size(), image.begin(), 0, NULL, NULL); - camera.buf.queue(buf_idx); - buf_idx = (buf_idx + 1) % FRAME_BUF_COUNT; + sm.update(1000); + if(sm.updated(frame_pkt)){ + auto msg = static_cast(sm[frame_pkt]); + auto frame = msg.get(frame_pkt).as(); + camera.buf.camera_bufs_metadata[buf_idx] = { + .frame_id = frame.get("frameId").as(), + .timestamp_eof = frame.get("timestampEof").as(), + .frame_length = frame.get("frameLength").as(), + .integ_lines = frame.get("integLines").as(), + .global_gain = frame.get("globalGain").as(), + }; + + cl_command_queue q = camera.buf.camera_bufs[buf_idx].copy_q; + cl_mem yuv_cl = camera.buf.camera_bufs[buf_idx].buf_cl; + + auto image = frame.get("image").as(); + clEnqueueWriteBuffer(q, yuv_cl, CL_TRUE, 0, image.size(), image.begin(), 0, NULL, NULL); + camera.buf.queue(buf_idx); + buf_idx = (buf_idx + 1) % FRAME_BUF_COUNT; + } } } diff --git a/selfdrive/camerad/cameras/camera_qcom.cc b/selfdrive/camerad/cameras/camera_qcom.cc index f47942ffac..3b41d70d47 100644 --- a/selfdrive/camerad/cameras/camera_qcom.cc +++ b/selfdrive/camerad/cameras/camera_qcom.cc @@ -850,7 +850,8 @@ static void parse_autofocus(CameraState *s, uint8_t *d) { } static std::optional get_accel_z(SubMaster *sm) { - if (sm->update(0) > 0) { + sm->update(0); + if(sm->updated("sensorEvents")){ for (auto event : (*sm)["sensorEvents"].getSensorEvents()) { if (event.which() == cereal::SensorEventData::ACCELERATION) { if (auto v = event.getAcceleration().getV(); v.size() >= 3) diff --git a/selfdrive/modeld/modeld.cc b/selfdrive/modeld/modeld.cc index bfa5e8c362..788024b1fd 100644 --- a/selfdrive/modeld/modeld.cc +++ b/selfdrive/modeld/modeld.cc @@ -40,8 +40,8 @@ void calibration_thread(bool wide_camera) { const mat3 yuv_transform = get_model_yuv_transform(); while (!do_exit) { - if (sm.update(100) > 0){ - + sm.update(100); + if(sm.updated("liveCalibration")){ auto extrinsic_matrix = sm["liveCalibration"].getLiveCalibration().getExtrinsicMatrix(); Eigen::Matrix extrinsic_matrix_eigen; for (int i = 0; i < 4*3; i++){ @@ -90,11 +90,10 @@ void run_model(ModelState &model, VisionIpcClient &vipc_client) { const bool run_model_this_iter = live_calib_seen; transform_lock.unlock(); - if (sm.update(0) > 0) { - // TODO: path planner timeout? - desire = ((int)sm["lateralPlan"].getLateralPlan().getDesire()); - frame_id = sm["roadCameraState"].getRoadCameraState().getFrameId(); - } + // TODO: path planner timeout? + sm.update(0); + desire = ((int)sm["lateralPlan"].getLateralPlan().getDesire()); + frame_id = sm["roadCameraState"].getRoadCameraState().getFrameId(); if (run_model_this_iter) { run_count++; diff --git a/selfdrive/sensord/sensors_qcom.cc b/selfdrive/sensord/sensors_qcom.cc index 77e670d3f4..b46c232dc6 100644 --- a/selfdrive/sensord/sensors_qcom.cc +++ b/selfdrive/sensord/sensors_qcom.cc @@ -197,7 +197,8 @@ void sensor_loop() { } // Check whether to go into low power mode at 5Hz - if (frame % 20 == 0 && sm.update(0) > 0) { + if (frame % 20 == 0) { + sm.update(0); bool offroad = !sm["deviceState"].getDeviceState().getStarted(); if (low_power_mode != offroad) { for (auto &s : sensors) {