show sat count in sidebar (#20028)

* show sat count in sidebar

* fix

* revert that

Co-authored-by: Comma Device <device@comma.ai>
This commit is contained in:
Adeeb Shihadeh 2021-02-05 14:15:02 -08:00 committed by GitHub
parent c3707328f5
commit 54b59783cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 1 deletions

View file

@ -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());
}

View file

@ -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();
}

View file

@ -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];