|
|
@ -279,6 +279,7 @@ void CameraViewWidget::vipcThread() { |
|
|
|
std::unique_ptr<VisionIpcClient> vipc_client; |
|
|
|
std::unique_ptr<VisionIpcClient> vipc_client; |
|
|
|
VisionIpcBufExtra meta_main = {0}; |
|
|
|
VisionIpcBufExtra meta_main = {0}; |
|
|
|
VisionBuf *buf; |
|
|
|
VisionBuf *buf; |
|
|
|
|
|
|
|
UIState *s = uiState(); |
|
|
|
|
|
|
|
|
|
|
|
while (!QThread::currentThread()->isInterruptionRequested()) { |
|
|
|
while (!QThread::currentThread()->isInterruptionRequested()) { |
|
|
|
if (!vipc_client || cur_stream_type != stream_type) { |
|
|
|
if (!vipc_client || cur_stream_type != stream_type) { |
|
|
@ -294,18 +295,19 @@ void CameraViewWidget::vipcThread() { |
|
|
|
emit vipcThreadConnected(vipc_client.get()); |
|
|
|
emit vipcThreadConnected(vipc_client.get()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
UIState *s = uiState(); |
|
|
|
// Wait until camera frame id is behind modelV2, then update once
|
|
|
|
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); |
|
|
|
while (meta_main.frame_id >= (*s->sm)["modelV2"].getModelV2().getFrameId()) { |
|
|
|
bool recv_one = (meta_main.frame_id - (*s->sm)["modelV2"].getModelV2().getFrameId()) > 40; |
|
|
|
qDebug() << "Sleeping"; |
|
|
|
while (meta_main.frame_id < (*s->sm)["modelV2"].getModelV2().getFrameId() || recv_one) { |
|
|
|
QThread::msleep(10); |
|
|
|
buf = vipc_client->recv(&meta_main, 1000); |
|
|
|
if ((meta_main.frame_id - (*s->sm)["modelV2"].getModelV2().getFrameId()) > 40) { |
|
|
|
recv_one = false; |
|
|
|
break; |
|
|
|
qDebug() << "recv loop: camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); |
|
|
|
} |
|
|
|
if (buf == nullptr) break; |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
if (buf) { |
|
|
|
if ((buf = vipc_client->recv(&meta_main, 1000))) { |
|
|
|
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); |
|
|
|
qDebug() << "emitting"; |
|
|
|
emit vipcThreadFrameReceived(buf); |
|
|
|
emit vipcThreadFrameReceived(buf); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
qDebug() << "camerad:" << meta_main.frame_id << "modeld:" << (*s->sm)["modelV2"].getModelV2().getFrameId(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|