last_docs = {"—", "—", "—"}; std::array last_msgs = {"—", "—", "—"}; bool gps_valid = false; float gps_lat = 0.0f; float gps_lon = 0.0f; std::string time_text = "--:--"; std::string name_masked = "********"; std::string qr_hint = "ID QR"; }; void obb_tiles_dashboard_init(lv_obj_t *root); void obb_tiles_dashboard_on_swipe(lv_dir_t dir); void obb_dashboard_set_status(const obb_status_bar_t &status); void obb_dashboard_set_tile5_snapshot(const obb_tile5_snapshot_t &snapshot); } // namespace obb"> last_docs = {"—", "—", "—"}; std::array last_msgs = {"—", "—", "—"}; bool gps_valid = false; float gps_lat = 0.0f; float gps_lon = 0.0f; std::string time_text = "--:--"; std::string name_masked = "********"; std::string qr_hint = "ID QR"; }; void obb_tiles_dashboard_init(lv_obj_t *root); void obb_tiles_dashboard_on_swipe(lv_dir_t dir); void obb_dashboard_set_status(const obb_status_bar_t &status); void obb_dashboard_set_tile5_snapshot(const obb_tile5_snapshot_t &snapshot); } // namespace obb"> last_docs = {"—", "—", "—"}; std::array last_msgs = {"—", "—", "—"}; bool gps_valid = false; float gps_lat = 0.0f; float gps_lon = 0.0f; std::string time_text = "--:--"; std::string name_masked = "********"; std::string qr_hint = "ID QR"; }; void obb_tiles_dashboard_init(lv_obj_t *root); void obb_tiles_dashboard_on_swipe(lv_dir_t dir); void obb_dashboard_set_status(const obb_status_bar_t &status); void obb_dashboard_set_tile5_snapshot(const obb_tile5_snapshot_t &snapshot); } // namespace obb">
#pragma once

#include <array>
#include <string>

#include <lvgl.h>

namespace obb {

struct obb_status_bar_t {
  int8_t signal_dbm = -99;
  uint8_t packet_loss = 0;
  uint8_t notif_count = 0;
  uint8_t alert_level = 0;  // 0=OK, 1=Warn, 2=Critique
  bool emergency_latched = false;
};

struct obb_tile5_snapshot_t {
  std::string station_k = "?";
  std::string region = "N/A";
  std::array<std::string, 3> last_docs = {"—", "—", "—"};
  std::array<std::string, 3> last_msgs = {"—", "—", "—"};
  bool gps_valid = false;
  float gps_lat = 0.0f;
  float gps_lon = 0.0f;
  std::string time_text = "--:--";
  std::string name_masked = "********";
  std::string qr_hint = "ID QR";
};

void obb_tiles_dashboard_init(lv_obj_t *root);
void obb_tiles_dashboard_on_swipe(lv_dir_t dir);

void obb_dashboard_set_status(const obb_status_bar_t &status);
void obb_dashboard_set_tile5_snapshot(const obb_tile5_snapshot_t &snapshot);

}  // namespace obb