nav: add mapRenderState (#26734)

* nav: add mapRenderState

* bump cereal

* bump again
old-commit-hash: c3b3c10232
taco
Adeeb Shihadeh 2 years ago committed by GitHub
parent 6235dcc55f
commit 1b62c55e8d
  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->create_buffers(VisionStreamType::VISION_STREAM_MAP, NUM_VIPC_BUFFERS, false, WIDTH, HEIGHT);
vipc_server->start_listener(); vipc_server->start_listener();
pm.reset(new PubMaster({"navThumbnail"})); pm.reset(new PubMaster({"navThumbnail", "mapRenderState"}));
sm.reset(new SubMaster({"liveLocationKalman", "navRoute"}, {"liveLocationKalman"})); sm.reset(new SubMaster({"liveLocationKalman", "navRoute"}, {"liveLocationKalman"}));
timer = new QTimer(this); timer = new QTimer(this);
@ -122,14 +122,16 @@ bool MapRenderer::loaded() {
} }
void MapRenderer::update() { void MapRenderer::update() {
double start_t = millis_since_boot();
gl_functions->glClear(GL_COLOR_BUFFER_BIT); gl_functions->glClear(GL_COLOR_BUFFER_BIT);
m_map->render(); m_map->render();
gl_functions->glFlush(); 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()) { if (!vipc_server || !loaded()) {
return; return;
} }
@ -139,7 +141,7 @@ void MapRenderer::sendVipc() {
VisionBuf* buf = vipc_server->get_buffer(VisionStreamType::VISION_STREAM_MAP); VisionBuf* buf = vipc_server->get_buffer(VisionStreamType::VISION_STREAM_MAP);
VisionIpcBufExtra extra = { VisionIpcBufExtra extra = {
.frame_id = frame_id, .frame_id = frame_id,
.timestamp_sof = ts, .timestamp_sof = sm->rcv_time("liveLocationKalman"),
.timestamp_eof = ts, .timestamp_eof = ts,
}; };
@ -173,6 +175,13 @@ void MapRenderer::sendVipc() {
pm->send("navThumbnail", msg); 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++; frame_id++;
} }

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

Loading…
Cancel
Save