src/eric7/MicroPython/WifiDialogs/WifiStatusDialog.py

Sun, 09 Mar 2025 14:16:35 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 09 Mar 2025 14:16:35 +0100
branch
eric7
changeset 11166
fd914f897dcf
parent 11090
f5f5f5803935
child 11236
75c26fe1d1c7
permissions
-rw-r--r--

MicroPython Interface
- Changed the WiFi and Bluetooth status dialogs to non-modal windows with a 'Refresh' button.

9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to show the WiFi status of the connected device.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
10 import contextlib
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
11
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
12 from PyQt6.QtCore import Qt, pyqtSlot
9856
df2ff78bbc01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9837
diff changeset
13 from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
15 from eric7.EricGui import EricPixmapCache
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
16
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 from .Ui_WifiStatusDialog import Ui_WifiStatusDialog
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 class WifiStatusDialog(QDialog, Ui_WifiStatusDialog):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Class implementing a dialog to show the WiFi status of the connected device.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
25 def __init__(self, microPython, parent=None):
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Constructor
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
29 @param microPython reference to the MicroPython widget
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
30 @type MicroPythonWidget
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @param parent reference to the parent widget (defaults to None)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @type QWidget (optional)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 super().__init__(parent)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 self.setupUi(self)
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
36 self.setWindowFlags(Qt.WindowType.Window)
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.statusTree.setColumnCount(2)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
40 self.refreshButton.setIcon(EricPixmapCache.getIcon("reload"))
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
41 self.refreshButton.clicked.connect(self.__showStatus)
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
42
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
43 self.__mpy = microPython
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
44
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
45 self.__showStatus()
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
46
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
47 @pyqtSlot()
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
48 def __showStatus(self):
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
49 """
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
50 Private slot to show the current WiFi status.
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
51 """
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
52 # clear old data
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
53 self.statusTree.clear()
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
54
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
55 # get the status
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
56 try:
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
57 clientStatus, apStatus, overallStatus = self.__mpy.getDevice().getWifiData()
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
58 except Exception as exc:
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
59 self.__mpy.showError("getWifiData()", str(exc))
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
60 return
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
61
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
62 # populate overall status
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
63 QTreeWidgetItem(
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
64 self.statusTree,
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
65 [
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
66 self.tr("Active"),
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
67 self.tr("Yes") if overallStatus["active"] else self.tr("No"),
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
68 ],
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
69 )
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
70 with contextlib.suppress(KeyError):
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
71 QTreeWidgetItem(
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
72 self.statusTree, [self.tr("Hostname"), overallStatus["hostname"]]
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
73 )
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
74 with contextlib.suppress(KeyError):
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
75 QTreeWidgetItem(
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
76 self.statusTree, [self.tr("Country"), overallStatus["country"]]
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9856
diff changeset
77 )
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
78
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
79 # populate status of client interface
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 if clientStatus:
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 header = self.__createHeader(self.tr("Client"))
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 header,
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 [
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.tr("Active"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.tr("Yes") if clientStatus["active"] else self.tr("No"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 ],
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 )
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 if clientStatus["active"]:
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 header,
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 [
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.tr("Connected"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.tr("Yes") if clientStatus["connected"] else self.tr("No"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 ],
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 )
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
97 with contextlib.suppress(KeyError):
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
98 QTreeWidgetItem(header, [self.tr("Status"), clientStatus["status"]])
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 header, [self.tr("IPv4 Address"), clientStatus["ifconfig"][0]]
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 )
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 header, [self.tr("Netmask"), clientStatus["ifconfig"][1]]
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 )
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 header, [self.tr("Gateway"), clientStatus["ifconfig"][2]]
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 )
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 QTreeWidgetItem(header, [self.tr("DNS"), clientStatus["ifconfig"][3]])
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 QTreeWidgetItem(header, [self.tr("MAC-Address"), clientStatus["mac"]])
9795
11b4d39d7584 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
110 with contextlib.suppress(KeyError):
11b4d39d7584 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
111 QTreeWidgetItem(
11b4d39d7584 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
112 header, [self.tr("Channel"), str(clientStatus["channel"])]
11b4d39d7584 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
113 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
114 with contextlib.suppress(KeyError):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
115 QTreeWidgetItem(
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
116 header, [self.tr("Country"), clientStatus["country"]]
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
117 )
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
118 with contextlib.suppress(KeyError):
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
119 QTreeWidgetItem(
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
120 header,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
121 [
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
122 self.tr("Tx-Power"),
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
123 self.tr("{0} dBm").format(clientStatus["txpower"]),
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
124 ],
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
125 )
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126
9828
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
127 if "ap_ssid" in clientStatus:
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
128 apHeader = self.__createSubheader(
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
129 header, self.tr("Connected Access Point")
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
130 )
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
131 QTreeWidgetItem(
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
132 apHeader, [self.tr("Name"), clientStatus["ap_ssid"]]
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
133 )
9835
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
134 with contextlib.suppress(KeyError):
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
135 QTreeWidgetItem(
9837
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
136 apHeader,
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
137 [self.tr("Channel"), str(clientStatus["ap_channel"])],
9835
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
138 )
9828
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
139 QTreeWidgetItem(
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
140 apHeader, [self.tr("MAC-Address"), clientStatus["ap_bssid"]]
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
141 )
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
142 QTreeWidgetItem(
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
143 apHeader, [self.tr("RSSI [dBm]"), str(clientStatus["ap_rssi"])]
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
144 )
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
145 QTreeWidgetItem(
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
146 apHeader, [self.tr("Security"), clientStatus["ap_security"]]
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
147 )
9835
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
148 with contextlib.suppress(KeyError):
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
149 QTreeWidgetItem(
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
150 apHeader, [self.tr("Country"), clientStatus["ap_country"]]
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
151 )
9828
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
152
11166
fd914f897dcf MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11090
diff changeset
153 # populate status of access point interface
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 if apStatus:
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 header = self.__createHeader(self.tr("Access Point"))
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 header,
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 [
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 self.tr("Active"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 self.tr("Yes") if apStatus["active"] else self.tr("No"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 ],
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 )
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if apStatus["active"]:
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 QTreeWidgetItem(
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 header,
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 [
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 self.tr("Connected"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 self.tr("Yes") if apStatus["connected"] else self.tr("No"),
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 ],
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 )
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
171 with contextlib.suppress(KeyError):
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
172 QTreeWidgetItem(header, [self.tr("Status"), apStatus["status"]])
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
173 with contextlib.suppress(KeyError):
9835
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
174 QTreeWidgetItem(
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
175 header, [self.tr("IPv4 Address"), apStatus["ifconfig"][0]]
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
176 )
9837
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
177 QTreeWidgetItem(
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
178 header, [self.tr("Netmask"), apStatus["ifconfig"][1]]
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
179 )
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
180 QTreeWidgetItem(
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
181 header, [self.tr("Gateway"), apStatus["ifconfig"][2]]
b1d925ecda15 Corrected some code formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9835
diff changeset
182 )
9835
b4b07de1b695 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9828
diff changeset
183 QTreeWidgetItem(header, [self.tr("DNS"), apStatus["ifconfig"][3]])
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
184 with contextlib.suppress(KeyError):
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
185 QTreeWidgetItem(header, [self.tr("SSID"), apStatus["essid"]])
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 QTreeWidgetItem(header, [self.tr("MAC-Address"), apStatus["mac"]])
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
187 with contextlib.suppress(KeyError):
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
188 QTreeWidgetItem(
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
189 header, [self.tr("Channel"), str(apStatus["channel"])]
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
190 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
191 with contextlib.suppress(KeyError):
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
192 QTreeWidgetItem(header, [self.tr("Country"), apStatus["country"]])
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
193 with contextlib.suppress(KeyError):
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
194 QTreeWidgetItem(
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
195 header,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
196 [
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
197 self.tr("Tx-Power"),
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
198 self.tr("{0} dBm").format(apStatus["txpower"]),
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
199 ],
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9795
diff changeset
200 )
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 for col in range(self.statusTree.columnCount()):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 self.statusTree.resizeColumnToContents(col)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204
9856
df2ff78bbc01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9837
diff changeset
205 self.buttonBox.button(QDialogButtonBox.StandardButton.Close).setDefault(True)
df2ff78bbc01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9837
diff changeset
206 self.buttonBox.setFocus(Qt.FocusReason.OtherFocusReason)
df2ff78bbc01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9837
diff changeset
207
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 def __createHeader(self, headerText):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 Private method to create a header item.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 @param headerText text for the header item
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 @type str
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 @return reference to the created header item
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 @rtype QTreeWidgetItem
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 headerItem = QTreeWidgetItem(self.statusTree, [headerText])
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 headerItem.setExpanded(True)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 headerItem.setFirstColumnSpanned(True)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 font = headerItem.font(0)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 font.setBold(True)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 headerItem.setFont(0, font)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 return headerItem
9828
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
227
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
228 def __createSubheader(self, parent, text):
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
229 """
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
230 Private method to create a subheader item.
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
231
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
232 @param parent reference to the parent item
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
233 @type QTreeWidgetItem
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
234 @param text text for the header item
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
235 @type str
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
236 @return reference to the created header item
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
237 @rtype QTreeWidgetItem
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
238 """
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
239 headerItem = QTreeWidgetItem(parent, [text])
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
240 headerItem.setExpanded(True)
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
241 headerItem.setFirstColumnSpanned(True)
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
242
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
243 font = headerItem.font(0)
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
244 font.setUnderline(True)
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
245 headerItem.setFont(0, font)
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
246
32c8a5b57332 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
247 return headerItem

eric ide

mercurial