src/eric7/MicroPython/WifiDialogs/WifiController.py

Fri, 10 Mar 2023 18:04:06 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 10 Mar 2023 18:04:06 +0100
branch
mpy_network
changeset 9868
467288cffee2
parent 9798
4402d76c5fa9
child 9870
0399d3607829
permissions
-rw-r--r--

MicroPython
- Added support for synchronizing the board time via NTP for network enabled boards.

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 )
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
75 if self.__mpy.getDevice().hasNetworkTime():
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
76 wifiMenu.addSeparator()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
77 wifiMenu.addAction(self.tr("Set Network Time"), self.__setNetworkTime)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
78
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 # 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
80 self.__mpy.getDevice().addDeviceWifiEntries(wifiMenu)
9776
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 return wifiMenu
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 def __showWifiStatus(self):
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 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
88 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 from .WifiStatusDialog import WifiStatusDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 try:
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
92 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
93
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
94 dlg = WifiStatusDialog(clientStatus, apStatus, overallStatus)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 dlg.exec()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 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
97 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
98
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 def __connectWifi(self):
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 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
103 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 from .WifiConnectionDialog import WifiConnectionDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 dlg = WifiConnectionDialog()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
108 ssid, password = dlg.getConnectionParameters()
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 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
110 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 EricMessageBox.information(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 "<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
116 ).format(ssid),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 "<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
124 "<p>Reason: {1}</p>"
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 ).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
126 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 def __disconnectWifi(self):
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 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
132 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 success, error = self.__mpy.getDevice().disconnectWifi()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 EricMessageBox.information(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 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
138 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
139 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 self.tr("Disconnect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 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
145 "<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
146 ).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
147 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
148
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
149 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
150 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
151 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
152 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
153 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
154 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
155 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
156 msg = (
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
157 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
158 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
159 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
160 )
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
161 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
162 None,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
163 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
164 msg,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
165 )
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
166 else:
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
167 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
168 None,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
169 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
170 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
171 "<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
172 ).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
173 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
174
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
175 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
176 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
177 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
178 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
179 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
180 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
181
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 = 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
183 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
184 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
185
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
186 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
187 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
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 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
190
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
191 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
192 """
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
193 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
194
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
195 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
196 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
197 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
198 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
199 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
200 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
201 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
202 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
203 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
204 "<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
205 " 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
206 ),
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
207 )
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 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
209 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
210 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
211 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
212 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
213 "<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
214 "<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
215 ).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
216 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
217
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
218 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
219 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
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 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
222
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
223 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
224 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
225 """
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
226 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
227 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
228 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
229 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
230 "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
231 " 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
232 ),
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 )
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 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
235 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
236 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
237 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
238 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
239 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
240 self.tr(
9794
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
241 "<p>The WiFi credentials were removed from the device. The"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
242 " device will not connect to the WiFi network at boot time"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
243 " anymore.</p>"
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
244 ),
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
245 )
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 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
247 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
248 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
249 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
250 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
251 "<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
252 "</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
253 ).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
254 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
255
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
256 @pyqtSlot()
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
257 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
258 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
259 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
260
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
261 @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
262 @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
263 """
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
264 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
265
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
266 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
267 if dlg.exec() == QDialog.DialogCode.Accepted:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
268 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
269
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
270 ok, err = self.__mpy.getDevice().startAccessPoint(
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
271 ssid,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
272 security=security,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
273 password=password,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
274 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
275 )
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 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
277 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
278 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
279 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
280 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
281 "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
282 ),
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 )
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 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
285 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
286 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
287 msg += self.tr("<p>Reason: {0}").format(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
288 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
289 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
290 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
291 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
292 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
293
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
294 @pyqtSlot()
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
295 def __startAccessPointIP(self):
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
296 """
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
297 Private slot to start the Access Point interface of the connected device
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
298 with given IP parameters.
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 self.__startAccessPoint(withIP=True)
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
301
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
302 @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
303 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
304 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
305 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
306 """
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
307 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
308 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
309 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
310 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
311 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
312 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
313 )
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 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
315 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
316 if err:
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 msg += self.tr("<p>Reason: {0}").format(err)
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 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
319 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
320 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
321 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
322 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
323
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
324 @pyqtSlot()
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
325 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
326 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
327 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
328 interface.
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
329 """
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
330 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
331
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 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
333 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
334
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 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
336 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
337 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
338 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
339 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
340 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
341 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
342 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
343 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
344 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
345 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
346 )
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
347
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
348 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
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 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
351
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
352 @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
353 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
354 @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
355 """
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
356 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
357 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
358 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
359 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
360 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
361 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
362 )
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 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
364 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
365 if err:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
366 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
367 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
368 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
369 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
370 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
371 )
9868
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 def __setNetworkTime(self):
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 Private method to synchronize the device clock to network time.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
376 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
377 from ..NtpParametersDialog import NtpParametersDialog
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
378
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
379 dlg = NtpParametersDialog(self.__mpy)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
380 if dlg.exec() == QDialog.DialogCode.Accepted:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
381 server, tzOffset, isDst, timeout = dlg.getParameters()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
382 if isDst:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
383 tzOffset += 1
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
384
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
385 ok, err = self.__mpy.getDevice().setNetworkTime(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
386 server=server, tzOffset=tzOffset, timeout=timeout
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
387 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
388 if ok:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
389 EricMessageBox.information(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
390 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
391 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
392 self.tr("The device time was synchronized successfully."),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
393 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
394 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
395 if err:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
396 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
397 "<p>The device time could not be synchronized.</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
398 "<p>Reason: {0}</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
399 ).format(err)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
400 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
401 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
402 "<p>The device time could not be synchronized. Is the device"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
403 " connected to a WiFi network?</p>"
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 EricMessageBox.critical(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
406 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
407 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
408 msg,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
409 )

eric ide

mercurial