refactored heavily
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Satelliten-Tabelle
|
||||
# ---------------------------------------------------------------------------
|
||||
from PyQt5.QtGui import QColor
|
||||
from PyQt5.QtWidgets import QTableWidget, QHeaderView, QTableWidgetItem
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# UBX Protokoll-Konstanten
|
||||
# ---------------------------------------------------------------------------
|
||||
GNSS_NAMES = {
|
||||
0: "GPS",
|
||||
1: "SBAS",
|
||||
2: "Galileo",
|
||||
3: "BeiDou",
|
||||
4: "IMES",
|
||||
5: "QZSS",
|
||||
6: "GLONASS",
|
||||
7: "NavIC"
|
||||
}
|
||||
|
||||
GNSS_COLORS = {
|
||||
0: QColor("#1E90FF"),
|
||||
1: QColor("#FFA500"),
|
||||
2: QColor("#00C853"),
|
||||
3: QColor("#E53935"),
|
||||
4: QColor("#9C27B0"),
|
||||
5: QColor("#00BCD4"),
|
||||
6: QColor("#FF4081"),
|
||||
7: QColor("#808080")
|
||||
}
|
||||
|
||||
class SatelliteTable(QTableWidget):
|
||||
HEADERS = ["GNSS", "SV", "Elevation", "Azimut", "C/N₀ (dB)", "Genutzt"]
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(0, len(self.HEADERS), parent)
|
||||
self.setHorizontalHeaderLabels(self.HEADERS)
|
||||
self.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||
self.setStyleSheet("""
|
||||
QTableWidget {
|
||||
background-color: #0d1b2a; color: #cccccc;
|
||||
gridline-color: #2a4a6a; font-family: monospace; font-size: 11px;
|
||||
}
|
||||
QHeaderView::section {
|
||||
background-color: #1a3a5c; color: #7ab7d4; padding: 4px;
|
||||
}
|
||||
""")
|
||||
self.setEditTriggers(QTableWidget.NoEditTriggers)
|
||||
self.setSelectionBehavior(QTableWidget.SelectRows)
|
||||
|
||||
def update_satellites(self, sats: list):
|
||||
self.setRowCount(0)
|
||||
for sat in sorted(sats, key=lambda s: (s["gnssId"], s["svId"])):
|
||||
row = self.rowCount()
|
||||
self.insertRow(row)
|
||||
color = GNSS_COLORS.get(sat["gnssId"], QColor("#ffffff"))
|
||||
vals = [
|
||||
GNSS_NAMES.get(sat["gnssId"], f"?({sat['gnssId']})"),
|
||||
str(sat["svId"]),
|
||||
f"{sat['elev']}°",
|
||||
f"{sat['azim']}°",
|
||||
str(sat["cno"]),
|
||||
"✓" if sat["used"] else "–",
|
||||
]
|
||||
for col, val in enumerate(vals):
|
||||
item = QTableWidgetItem(val)
|
||||
item.setForeground(color if col == 0 else QColor("#cccccc"))
|
||||
if sat["used"]:
|
||||
item.setBackground(QColor("#0d2a1a"))
|
||||
self.setItem(row, col, item)
|
||||
Reference in New Issue
Block a user