nav: add mapRenderState (#26734)

* nav: add mapRenderState

* bump cereal

* bump again
pull/26736/head
Adeeb Shihadeh 2 years ago committed by GitHub
parent 08b7fa7c44
commit c3b3c10232
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      cereal
  2. 17
      selfdrive/navd/map_renderer.cc
  3. 2
      selfdrive/navd/map_renderer.h

@ -1 +1 @@
Subproject commit 7765176413c0bb14143fe2469d5390ea0ea61a1e
Subproject commit 88253372042197ac92776cddc35a29d0eb384a3e

@ -65,7 +65,7 @@ MapRenderer::MapRenderer(const QMapboxGLSettings &settings, bool online) : m_set
vipc_server->create_buffers(VisionStreamType::VISION_STREAM_MAP, NUM_VIPC_BUFFERS, false, WIDTH, HEIGHT);
vipc_server->start_listener();
pm.reset(new PubMaster({"navThumbnail"}));
pm.reset(new PubMaster({"navThumbnail", "mapRenderState"}));
sm.reset(new SubMaster({"liveLocationKalman", "navRoute"}, {"liveLocationKalman"}));
timer = new QTimer(this);
@ -122,14 +122,16 @@ bool MapRenderer::loaded() {
}
void MapRenderer::update() {
double start_t = millis_since_boot();
gl_functions->glClear(GL_COLOR_BUFFER_BIT);
m_map->render();
gl_functions->glFlush();
double end_t = millis_since_boot();
sendVipc();
publish((end_t - start_t) / 1000.0);
}
void MapRenderer::sendVipc() {
void MapRenderer::publish(const double render_time) {
if (!vipc_server || !loaded()) {
return;
}
@ -139,7 +141,7 @@ void MapRenderer::sendVipc() {
VisionBuf* buf = vipc_server->get_buffer(VisionStreamType::VISION_STREAM_MAP);
VisionIpcBufExtra extra = {
.frame_id = frame_id,
.timestamp_sof = ts,
.timestamp_sof = sm->rcv_time("liveLocationKalman"),
.timestamp_eof = ts,
};
@ -173,6 +175,13 @@ void MapRenderer::sendVipc() {
pm->send("navThumbnail", msg);
}
// Send state msg
MessageBuilder msg;
auto state = msg.initEvent().initMapRenderState();
state.setLocationMonoTime(sm->rcv_time("liveLocationKalman"));
state.setRenderTime(render_time);
pm->send("mapRenderState", msg);
frame_id++;
}

@ -34,7 +34,7 @@ private:
std::unique_ptr<VisionIpcServer> vipc_server;
std::unique_ptr<PubMaster> pm;
std::unique_ptr<SubMaster> sm;
void sendVipc();
void publish(const double render_time);
QMapboxGLSettings m_settings;
QScopedPointer<QMapboxGL> m_map;

Loading…
Cancel
Save