From 86beb9a81afcc940f780f56dab3c238f024dfaef Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Wed, 15 Sep 2021 20:31:06 -0700 Subject: [PATCH] UI: fix getting stuck after vipc recv timeout --- selfdrive/ui/qt/widgets/cameraview.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/selfdrive/ui/qt/widgets/cameraview.cc b/selfdrive/ui/qt/widgets/cameraview.cc index 477b2d8ca6..40bf43e865 100644 --- a/selfdrive/ui/qt/widgets/cameraview.cc +++ b/selfdrive/ui/qt/widgets/cameraview.cc @@ -252,17 +252,19 @@ void CameraViewWidget::updateFrame() { resizeGL(width(), height()); } + VisionBuf *buf = nullptr; if (vipc_client->connected) { - VisionBuf *buf = vipc_client->recv(); + buf = vipc_client->recv(); if (buf != nullptr) { latest_frame = buf; update(); emit frameUpdated(); - } else if (!Hardware::PC()) { + } else { LOGE("visionIPC receive timeout"); } - } else { - // try to connect again quickly + } + if (buf == nullptr) { + // try to connect or recv again QTimer::singleShot(1000. / UI_FREQ, this, &CameraViewWidget::updateFrame); } }