src/eric7/MicroPython/WifiDialogs/WifiController.py

Sat, 11 Mar 2023 11:57:49 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 11 Mar 2023 11:57:49 +0100
branch
eric7
changeset 9875
b4512fbcf567
parent 9872
6b8aa1c50c6d
child 9878
a82014a9e57b
permissions
-rw-r--r--

Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.

9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the WiFi related functionality.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtCore import QObject, pyqtSlot
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 from PyQt6.QtWidgets import QDialog, QMenu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
13 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7.EricWidgets import EricMessageBox
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 class WifiController(QObject):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 Class implementing the WiFi related functionality.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 def __init__(self, microPython, parent=None):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Constructor
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @param microPython reference to the MicroPython widget
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 @type MicroPythonWidgep
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 @param parent reference to the parent object (defaults to None)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @type QObject (optional)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 super().__init__(parent)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 self.__mpy = microPython
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 def createMenu(self, menu):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 Public method to create the WiFi submenu.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @param menu reference to the parent menu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @type QMenu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @return reference to the created menu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @rtype QMenu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 wifiMenu = QMenu(self.tr("WiFi Functions"), menu)
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
45 wifiMenu.setTearOffEnabled(True)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 wifiMenu.addAction(self.tr("Show WiFi Status"), self.__showWifiStatus)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 wifiMenu.addSeparator()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 wifiMenu.addAction(self.tr("Connect WiFi"), self.__connectWifi)
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
49 wifiMenu.addAction(self.tr("Check Internet Connection"), self.__checkInternet)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 wifiMenu.addAction(self.tr("Disconnect WiFi"), self.__disconnectWifi)
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
51 wifiMenu.addSeparator()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
52 wifiMenu.addAction(self.tr("Scan Networks"), self.__scanNetwork)
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
53 wifiMenu.addSeparator()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
54 wifiMenu.addAction(self.tr("Write WiFi Credentials"), self.__writeCredentials)
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
55 wifiMenu.addAction(self.tr("Remove WiFi Credentials"), self.__removeCredentials)
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
56 wifiMenu.addSeparator()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
57 wifiMenu.addAction(self.tr("Start WiFi Access Point"), self.__startAccessPoint)
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
58 wifiMenu.addAction(
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
59 self.tr("Start WiFi Access Point with IP"), self.__startAccessPointIP
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
60 )
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
61 wifiMenu.addAction(
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
62 self.tr("Show Connected Clients"), self.__showConnectedClients
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
63 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
64 wifiMenu.addAction(self.tr("Stop WiFi Access Point"), self.__stopAccessPoint)
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
65 wifiMenu.addSeparator()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
66 wifiMenu.addAction(
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
67 self.tr("Deactivate Client Interface"),
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
68 lambda: self.__deactivateInterface("STA"),
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
69 )
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
70 wifiMenu.addAction(
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
71 self.tr("Deactivate Access Point Interface"),
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
72 lambda: self.__deactivateInterface("AP"),
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
73 )
9875
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
74 wifiMenu.addSeparator()
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
75 wifiMenu.addAction(self.tr("Set Network Time"), self.__setNetworkTime)
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
76
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 # add device specific entries (if there are any)
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
78 self.__mpy.getDevice().addDeviceWifiEntries(wifiMenu)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 return wifiMenu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 def __showWifiStatus(self):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 Private slot to show a dialog with the WiFi status of the current device.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 from .WifiStatusDialog import WifiStatusDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 try:
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
90 clientStatus, apStatus, overallStatus = self.__mpy.getDevice().getWifiData()
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
92 dlg = WifiStatusDialog(clientStatus, apStatus, overallStatus)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 dlg.exec()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 except Exception as exc:
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
95 self.__mpy.showError("getWifiData()", str(exc))
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 def __connectWifi(self):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 Private slot to connect the current device to a WiFi network.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 from .WifiConnectionDialog import WifiConnectionDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 dlg = WifiConnectionDialog()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
106 ssid, password = dlg.getConnectionParameters()
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 success, error = self.__mpy.getDevice().connectWifi(ssid, password)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 EricMessageBox.information(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 "<p>The device was connected to <b>{0}</b> successfully.</p>"
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 ).format(ssid),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 "<p>The device could not connect to <b>{0}</b>.</p>"
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 "<p>Reason: {1}</p>"
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 ).format(ssid, error if error else self.tr("unknown")),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 def __disconnectWifi(self):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 Private slot to disconnect the current device from the WiFi network.
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 success, error = self.__mpy.getDevice().disconnectWifi()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 EricMessageBox.information(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 self.tr("Disconnect WiFi"),
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
136 self.tr("<p>The device was disconnected from the WiFi network.</p>"),
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 self.tr("Disconnect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 self.tr(
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
143 "<p>The device could not be disconnected.</p><p>Reason: {0}</p>"
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 ).format(error if error else self.tr("unknown")),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
146
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
147 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
148 def __checkInternet(self):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
149 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
150 Private slot to check the availability of an internet connection.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
151 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
152 success, error = self.__mpy.getDevice().checkInternet()
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
153 if not error:
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
154 msg = (
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
155 self.tr("<p>The internet connection is <b>available</b>.</p>")
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
156 if success
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
157 else self.tr("<p>The internet connection is <b>not available</b>.</p>")
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
158 )
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
159 EricMessageBox.information(
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
160 None,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
161 self.tr("Check Internet Connection"),
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
162 msg,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
163 )
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
164 else:
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
165 EricMessageBox.critical(
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
166 None,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
167 self.tr("Check Internet Connection"),
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
168 self.tr(
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
169 "<p>The internet is not available.</p><p>Reason: {0}</p>"
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
170 ).format(error if error else self.tr("unknown")),
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
171 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
172
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
173 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
174 def __scanNetwork(self):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
175 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
176 Private slot to scan for visible WiFi networks.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
177 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
178 from .WifiNetworksWindow import WifiNetworksWindow
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
179
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
180 win = WifiNetworksWindow(self.__mpy.getDevice(), self.__mpy)
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
181 win.show()
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
182 win.scanNetworks()
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
183
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
184 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
185 def __writeCredentials(self):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
186 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
187 Private slot to save the WiFi login credentials to the connected device.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
188
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
189 This will also modify the boot script to perform an automatic WiFi connection.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
190 """
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
191 from .WifiConnectionDialog import WifiConnectionDialog
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
192
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
193 dlg = WifiConnectionDialog()
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
194 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
195 ssid, password = dlg.getConnectionParameters()
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
196 success, error = self.__mpy.getDevice().writeCredentials(ssid, password)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
197 if success:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
198 EricMessageBox.information(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
199 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
200 self.tr("Write WiFi Credentials"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
201 self.tr(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
202 "<p>The WiFi credentials were saved on the device. The device"
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
203 " will connect to the WiFi network at boot time.</p>"
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
204 ),
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
205 )
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
206 else:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
207 EricMessageBox.critical(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
208 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
209 self.tr("Write WiFi Credentials"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
210 self.tr(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
211 "<p>The WiFi credentials could not be saved on the device.</p>"
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
212 "<p>Reason: {0}</p>"
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
213 ).format(error if error else self.tr("unknown")),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
214 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
215
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
216 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
217 def __removeCredentials(self):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
218 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
219 Private slot to remove the saved WiFi credentials from the connected device.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
220
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
221 This will not remove the auto-connect part of the boot script. This needs to be
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
222 done manually if desired.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
223 """
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
224 ok = EricMessageBox.yesNo(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
225 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
226 self.tr("Remove WiFi Credentials"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
227 self.tr(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
228 "Shall the saved WiFi credentials really be removed from the connected"
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
229 " device?"
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
230 ),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
231 )
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
232 if ok:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
233 success, error = self.__mpy.getDevice().removeCredentials()
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
234 if success:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
235 EricMessageBox.information(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
236 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
237 self.tr("Remove WiFi Credentials"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
238 self.tr(
9794
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
239 "<p>The WiFi credentials were removed from the device. The"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
240 " device will not connect to the WiFi network at boot time"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
241 " anymore.</p>"
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
242 ),
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
243 )
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
244 else:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
245 EricMessageBox.critical(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
246 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
247 self.tr("Remove WiFi Credentials"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
248 self.tr(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
249 "<p>The WiFi credentials could not be removed from the device."
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
250 "</p><p>Reason: {0}</p>"
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
251 ).format(error if error else self.tr("unknown")),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
252 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
253
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
254 @pyqtSlot()
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
255 def __startAccessPoint(self, withIP=False):
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
256 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
257 Private slot to start the Access Point interface of the connected device.
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
258
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
259 @param withIP flag indicating to start the access point with an IP configuration
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
260 @type bool
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
261 """
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
262 from .WifiApConfigDialog import WifiApConfigDialog
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
263
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
264 dlg = WifiApConfigDialog(withIP=withIP)
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
265 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
266 ssid, password, security, ifconfig = dlg.getApConfig()
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
267
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
268 ok, err = self.__mpy.getDevice().startAccessPoint(
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
269 ssid,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
270 security=security,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
271 password=password,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
272 ifconfig=ifconfig if withIP else None,
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
273 )
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
274 if ok:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
275 EricMessageBox.information(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
276 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
277 self.tr("Start WiFi Access Point"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
278 self.tr(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
279 "The WiFi Access Point interface was started successfully."
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
280 ),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
281 )
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
282 else:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
283 msg = self.tr("<p>The WiFi Access Point could not be started.</p>")
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
284 if err:
9872
6b8aa1c50c6d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9870
diff changeset
285 msg += self.tr("<p>Reason: {0}</p>").format(err)
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
286 EricMessageBox.critical(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
287 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
288 self.tr("Start WiFi Access Point"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
289 msg,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
290 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
291
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
292 @pyqtSlot()
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
293 def __startAccessPointIP(self):
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
294 """
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
295 Private slot to start the Access Point interface of the connected device
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
296 with given IP parameters.
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
297 """
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
298 self.__startAccessPoint(withIP=True)
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
299
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
300 @pyqtSlot()
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
301 def __stopAccessPoint(self):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
302 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
303 Private slot to stop the Access Point interface of the connected device.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
304 """
9782
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
305 ok, err = self.__mpy.getDevice().stopAccessPoint()
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
306 if ok:
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
307 EricMessageBox.information(
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
308 None,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
309 self.tr("Stop WiFi Access Point"),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
310 self.tr("The WiFi Access Point interface was stopped successfully."),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
311 )
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
312 else:
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
313 msg = self.tr("<p>The WiFi Access Point could not be stopped.</p>")
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
314 if err:
9872
6b8aa1c50c6d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9870
diff changeset
315 msg += self.tr("<p>Reason: {0}</p>").format(err)
9782
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
316 EricMessageBox.critical(
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
317 None,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
318 self.tr("Stop WiFi Access Point"),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
319 msg,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
320 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
321
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
322 @pyqtSlot()
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
323 def __showConnectedClients(self):
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
324 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
325 Private slot to show a list of WiFi clients connected to the Access Point
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
326 interface.
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
327 """
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
328 from .WifiApStationsDialog import WifiApStationsDialog
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
329
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
330 with EricOverrideCursor():
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
331 stations, err = self.__mpy.getDevice().getConnectedClients()
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
332
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
333 if err:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
334 self.__mpy.showError("getConnectedClients()", err)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
335 else:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
336 if stations:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
337 dlg = WifiApStationsDialog(stations)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
338 dlg.exec()
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
339 else:
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
340 EricMessageBox.information(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
341 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
342 self.tr("Show Connected Clients"),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
343 self.tr("No clients are connected to the access point."),
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
344 )
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
345
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
346 def __deactivateInterface(self, interface):
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
347 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
348 Private method to deactivate a given WiFi interface of the connected device.
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
349
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
350 @param interface designation of the interface to be deactivated (one of 'AP'
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
351 or 'STA')
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
352 @type str
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
353 """
9782
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
354 ok, err = self.__mpy.getDevice().deactivateInterface(interface)
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
355 if ok:
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
356 EricMessageBox.information(
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
357 None,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
358 self.tr("Deactivate WiFi Interface"),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
359 self.tr("The WiFi interface was deactivated successfully."),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
360 )
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
361 else:
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
362 msg = self.tr("<p>The WiFi interface could not be deactivated.</p>")
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
363 if err:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
364 msg += self.tr("<p>Reason: {0}</p>").format(err)
9782
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
365 EricMessageBox.critical(
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
366 None,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
367 self.tr("Deactivate WiFi Interface"),
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
368 msg,
67414f28db68 Continued implementing WiFi functionality for RP2040 based devices (interface deactivation, AP stop, MicroPython config page).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9781
diff changeset
369 )
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
370
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
371 def __setNetworkTime(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
372 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
373 Private method to synchronize the device clock to network time.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
374 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
375 from ..NtpParametersDialog import NtpParametersDialog
9870
0399d3607829 Fixed a few code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
376
9875
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
377 device = self.__mpy.getDevice()
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
378 if not device.getDeviceData("ntp"):
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
379 if device.hasCircuitPython():
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
380 EricMessageBox.warning(
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
381 None,
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
382 self.tr("Set Network Time"),
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
383 self.tr(
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
384 "<p>The device does not support network time synchronization."
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
385 " The module <b>adafruit_ntp</b> is not installed.</p>"
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
386 ),
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
387 )
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
388 else:
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
389 EricMessageBox.critical(
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
390 None,
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
391 self.tr("Set Network Time"),
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
392 self.tr(
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
393 "<p>The device does not support network time synchronization."
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
394 " The module <b>ntptime</b> is not available.</p>"
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
395 ),
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
396 )
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
397 return
b4512fbcf567 Modified the MicroPython WiFi menu to give a hint, why NTP time synchronization is not available.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9872
diff changeset
398
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
399 dlg = NtpParametersDialog(self.__mpy)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
400 if dlg.exec() == QDialog.DialogCode.Accepted:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
401 server, tzOffset, isDst, timeout = dlg.getParameters()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
402 if isDst:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
403 tzOffset += 1
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
404
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
405 ok, err = self.__mpy.getDevice().setNetworkTime(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
406 server=server, tzOffset=tzOffset, timeout=timeout
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
407 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
408 if ok:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
409 EricMessageBox.information(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
410 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
411 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
412 self.tr("The device time was synchronized successfully."),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
413 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
414 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
415 if err:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
416 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
417 "<p>The device time could not be synchronized.</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
418 "<p>Reason: {0}</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
419 ).format(err)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
420 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
421 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
422 "<p>The device time could not be synchronized. Is the device"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
423 " connected to a WiFi network?</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
424 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
425 EricMessageBox.critical(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
426 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
427 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
428 msg,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
429 )

eric ide

mercurial