From 54b59783cb3ad0e3d8c3c59bfa723ba41e09352a Mon Sep 17 00:00:00 2001 From: Adeeb Shihadeh Date: Fri, 5 Feb 2021 14:15:02 -0800 Subject: [PATCH] show sat count in sidebar (#20028) * show sat count in sidebar * fix * revert that Co-authored-by: Comma Device --- selfdrive/ui/sidebar.cc | 7 +++++++ selfdrive/ui/ui.cc | 13 ++++++++++++- selfdrive/ui/ui.hpp | 4 ++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/selfdrive/ui/sidebar.cc b/selfdrive/ui/sidebar.cc index 79ba0d5f3..b2dc48fea 100644 --- a/selfdrive/ui/sidebar.cc +++ b/selfdrive/ui/sidebar.cc @@ -122,6 +122,13 @@ static void draw_panda_metric(UIState *s) { panda_severity = 2; panda_message = "NO\nPANDA"; } +#ifdef QCOM2 + else if (s->started) { + panda_severity = s->scene.cnoAvg > 30 ? 0 : 1; + panda_message = util::string_format("SAT CNT\n%d", s->scene.satelliteCount); + } +#endif + draw_metric(s, NULL, NULL, panda_severity, panda_y_offset, panda_message.c_str()); } diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index ba729b0b8..450fe1517 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -41,7 +41,7 @@ static void ui_init_vision(UIState *s) { void ui_init(UIState *s) { s->sm = new SubMaster({"modelV2", "controlsState", "uiLayoutState", "liveCalibration", "radarState", "thermal", "frame", - "health", "carParams", "driverState", "driverMonitoringState", "sensorEvents", "carState"}); + "health", "carParams", "driverState", "driverMonitoringState", "sensorEvents", "carState", "ubloxGnss"}); s->started = false; s->status = STATUS_OFFROAD; @@ -161,6 +161,17 @@ static void update_sockets(UIState *s) { } else if ((s->sm->frame - s->sm->rcv_frame("health")) > 5*UI_FREQ) { scene.pandaType = cereal::HealthData::PandaType::UNKNOWN; } + if (sm.updated("ubloxGnss")) { + auto data = sm["ubloxGnss"].getUbloxGnss(); + if (data.which() == cereal::UbloxGnss::MEASUREMENT_REPORT) { + auto measurements = data.getMeasurementReport().getMeasurements(); + for (auto m : measurements) { + scene.cnoAvg += m.getCno(); + } + scene.cnoAvg /= measurements.size(); + scene.satelliteCount = data.getMeasurementReport().getNumMeas(); + } + } if (sm.updated("carParams")) { s->longitudinal_control = sm["carParams"].getCarParams().getOpenpilotLongitudinalControl(); } diff --git a/selfdrive/ui/ui.hpp b/selfdrive/ui/ui.hpp index 73dd7e1da..cd3313980 100644 --- a/selfdrive/ui/ui.hpp +++ b/selfdrive/ui/ui.hpp @@ -125,6 +125,10 @@ typedef struct UIScene { cereal::DriverState::Reader driver_state; cereal::DriverMonitoringState::Reader dmonitoring_state; + // gps + int satelliteCount; + int cnoAvg; + // modelV2 float lane_line_probs[4]; float road_edge_stds[2];