Tue, 14 Mar 2023 13:16:49 +0100
Modified feedback message to reflect CircuitPython.
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 | |
9886
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
13 | from eric7 import Globals |
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
|
14 | 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
|
15 | from eric7.EricWidgets import EricMessageBox |
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 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | class WifiController(QObject): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | Class implementing the WiFi related functionality. |
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 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | def __init__(self, microPython, parent=None): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | Constructor |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | @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
|
28 | @type MicroPythonWidgep |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @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
|
30 | @type QObject (optional) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | super().__init__(parent) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | self.__mpy = microPython |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | def createMenu(self, menu): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
38 | 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
|
39 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | @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
|
41 | @type QMenu |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
42 | @return reference to the created menu |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | @rtype QMenu |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
45 | 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
|
46 | wifiMenu.setTearOffEnabled(True) |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | 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
|
48 | wifiMenu.addSeparator() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | 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
|
50 | 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
|
51 | 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
|
52 | 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
|
53 | 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
|
54 | 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
|
55 | 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
|
56 | 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
|
57 | 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
|
58 | 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
|
59 | wifiMenu.addAction( |
9797 | 60 | self.tr("Start WiFi Access Point with IP"), self.__startAccessPointIP |
61 | ) | |
62 | 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
|
63 | 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
|
64 | ) |
9779
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.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
|
66 | 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
|
67 | 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
|
68 | 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
|
69 | 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
|
70 | ) |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
71 | 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
|
72 | 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
|
73 | 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
|
74 | ) |
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
|
75 | 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
|
76 | wifiMenu.addAction(self.tr("Set Network Time"), self.__setNetworkTime) |
9868 | 77 | |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | # 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
|
79 | self.__mpy.getDevice().addDeviceWifiEntries(wifiMenu) |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
81 | return wifiMenu |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | @pyqtSlot() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | def __showWifiStatus(self): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | 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
|
87 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | from .WifiStatusDialog import WifiStatusDialog |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
89 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
90 | try: |
9798 | 91 | 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
|
92 | |
9798 | 93 | dlg = WifiStatusDialog(clientStatus, apStatus, overallStatus) |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | dlg.exec() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | 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
|
96 | 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
|
97 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | @pyqtSlot() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
99 | def __connectWifi(self): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
101 | 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
|
102 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | from .WifiConnectionDialog import WifiConnectionDialog |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
104 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | dlg = WifiConnectionDialog() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | if dlg.exec() == QDialog.DialogCode.Accepted: |
9868 | 107 | ssid, password = dlg.getConnectionParameters() |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | 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
|
109 | if success: |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | EricMessageBox.information( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | None, |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | self.tr("Connect WiFi"), |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | self.tr( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | "<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
|
115 | ).format(ssid), |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | ) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | else: |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | EricMessageBox.critical( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | None, |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | self.tr("Connect WiFi"), |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
121 | self.tr( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | "<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
|
123 | "<p>Reason: {1}</p>" |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | ).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
|
125 | ) |
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 | @pyqtSlot() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | def __disconnectWifi(self): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | 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
|
131 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | success, error = self.__mpy.getDevice().disconnectWifi() |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | if success: |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | EricMessageBox.information( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | None, |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | 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
|
137 | 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
|
138 | ) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | else: |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | EricMessageBox.critical( |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
141 | None, |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.tr("Disconnect WiFi"), |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | 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
|
144 | "<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
|
145 | ).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
|
146 | ) |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
147 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
148 | @pyqtSlot() |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
149 | 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
|
150 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
151 | 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
|
152 | """ |
9781
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
153 | 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
|
154 | 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
|
155 | msg = ( |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
156 | 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
|
157 | 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
|
158 | 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
|
159 | ) |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
160 | 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
|
161 | None, |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
162 | 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
|
163 | msg, |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
164 | ) |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
165 | else: |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
166 | 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
|
167 | None, |
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("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
|
169 | 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
|
170 | "<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
|
171 | ).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
|
172 | ) |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
173 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
174 | @pyqtSlot() |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
175 | 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
|
176 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
177 | 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
|
178 | """ |
9781
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
179 | 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
|
180 | |
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 = 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
|
182 | 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
|
183 | 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
|
184 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
185 | @pyqtSlot() |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
186 | 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
|
187 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
188 | 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
|
189 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
190 | 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
|
191 | """ |
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
|
192 | 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
|
193 | |
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 | 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
|
195 | if dlg.exec() == QDialog.DialogCode.Accepted: |
9868 | 196 | 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
|
197 | 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
|
198 | if success: |
9886
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
199 | if self.__mpy.getDevice().hasCircuitPython(): |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
200 | # CircuitPython will reset for the REPL, so no auto-connect |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
201 | # available. |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
202 | if Globals.versionToTuple( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
203 | self.__mpy.getDevice().getDeviceData("release") |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
204 | ) >= (8, 0, 0): |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
205 | EricMessageBox.information( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
206 | None, |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
207 | self.tr("Write WiFi Credentials"), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
208 | self.tr( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
209 | "<p>The WiFi credentials were saved on the device. The" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
210 | " device will connect to the WiFi network at boot time." |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
211 | "</p>" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
212 | ), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
213 | ) |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
214 | else: |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
215 | EricMessageBox.information( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
216 | None, |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
217 | self.tr("Write WiFi Credentials"), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
218 | self.tr( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
219 | "<p>The WiFi credentials and a connect script were" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
220 | " saved on the device. Use the script by simply" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
221 | " importing it.</p>" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
222 | ), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
223 | ) |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
224 | else: |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
225 | EricMessageBox.information( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
226 | None, |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
227 | self.tr("Write WiFi Credentials"), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
228 | self.tr( |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
229 | "<p>The WiFi credentials were saved on the device. The" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
230 | " device will connect to the WiFi network at boot time.</p>" |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
231 | ), |
1a4f05b0dc00
Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
232 | ) |
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
|
233 | 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
|
234 | 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
|
235 | 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
|
236 | 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
|
237 | 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
|
238 | "<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
|
239 | "<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
|
240 | ).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
|
241 | ) |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
242 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
243 | @pyqtSlot() |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
244 | 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
|
245 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
246 | 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
|
247 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
248 | 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
|
249 | 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
|
250 | """ |
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
|
251 | 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
|
252 | 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
|
253 | 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
|
254 | 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
|
255 | "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
|
256 | " 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
|
257 | ), |
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
|
258 | ) |
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
|
259 | 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
|
260 | 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
|
261 | 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
|
262 | 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
|
263 | 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
|
264 | 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
|
265 | self.tr( |
9794 | 266 | "<p>The WiFi credentials were removed from the device. The" |
267 | " device will not connect to the WiFi network at boot time" | |
268 | " anymore.</p>" | |
9789
d8e0ab86ddca
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9787
diff
changeset
|
269 | ), |
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
|
270 | ) |
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
|
271 | 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
|
272 | 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
|
273 | 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
|
274 | 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
|
275 | 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
|
276 | "<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
|
277 | "</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
|
278 | ).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
|
279 | ) |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
280 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
281 | @pyqtSlot() |
9797 | 282 | 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
|
283 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
284 | Private slot to start the Access Point interface of the connected device. |
9797 | 285 | |
286 | @param withIP flag indicating to start the access point with an IP configuration | |
287 | @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
|
288 | """ |
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
|
289 | 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
|
290 | |
9797 | 291 | 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
|
292 | if dlg.exec() == QDialog.DialogCode.Accepted: |
9868 | 293 | 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
|
294 | |
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
|
295 | ok, err = self.__mpy.getDevice().startAccessPoint( |
9797 | 296 | ssid, |
297 | security=security, | |
298 | password=password, | |
299 | 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
|
300 | ) |
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
|
301 | 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
|
302 | 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
|
303 | 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
|
304 | 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
|
305 | 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
|
306 | "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
|
307 | ), |
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
|
308 | ) |
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
|
309 | 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
|
310 | 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
|
311 | if err: |
9872
6b8aa1c50c6d
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9870
diff
changeset
|
312 | 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
|
313 | 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
|
314 | 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
|
315 | 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
|
316 | 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
|
317 | ) |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
318 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
319 | @pyqtSlot() |
9797 | 320 | def __startAccessPointIP(self): |
321 | """ | |
322 | Private slot to start the Access Point interface of the connected device | |
323 | with given IP parameters. | |
324 | """ | |
325 | self.__startAccessPoint(withIP=True) | |
326 | ||
327 | @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
|
328 | 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
|
329 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
330 | 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
|
331 | """ |
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
|
332 | 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
|
333 | 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
|
334 | 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
|
335 | 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
|
336 | 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
|
337 | 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
|
338 | ) |
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
|
339 | 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
|
340 | 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
|
341 | if err: |
9872
6b8aa1c50c6d
Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9870
diff
changeset
|
342 | 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
|
343 | 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
|
344 | 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
|
345 | 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
|
346 | 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
|
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 | |
9781
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
349 | @pyqtSlot() |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
350 | 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
|
351 | """ |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
352 | 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
|
353 | interface. |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
354 | """ |
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
|
355 | 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
|
356 | |
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
|
357 | 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
|
358 | 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
|
359 | |
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
|
360 | 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
|
361 | 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
|
362 | 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
|
363 | 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
|
364 | 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
|
365 | 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
|
366 | 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
|
367 | 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
|
368 | 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
|
369 | 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
|
370 | 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
|
371 | ) |
9781
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
372 | |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
373 | 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
|
374 | """ |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
375 | 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
|
376 | |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
377 | @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
|
378 | 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
|
379 | @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
|
380 | """ |
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
|
381 | 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
|
382 | 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
|
383 | 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
|
384 | 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
|
385 | 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
|
386 | 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
|
387 | ) |
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
|
388 | 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
|
389 | 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
|
390 | if err: |
9868 | 391 | 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
|
392 | 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
|
393 | 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
|
394 | 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
|
395 | 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
|
396 | ) |
9868 | 397 | |
9878 | 398 | @pyqtSlot() |
9868 | 399 | def __setNetworkTime(self): |
400 | """ | |
9878 | 401 | Private slot to synchronize the device clock to network time. |
9868 | 402 | """ |
403 | from ..NtpParametersDialog import NtpParametersDialog | |
9870
0399d3607829
Fixed a few code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9868
diff
changeset
|
404 | |
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
|
405 | 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
|
406 | 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
|
407 | 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
|
408 | 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
|
409 | 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
|
410 | 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
|
411 | 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
|
412 | "<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
|
413 | " 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
|
414 | ), |
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
|
415 | ) |
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
|
416 | 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
|
417 | 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
|
418 | 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
|
419 | 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
|
420 | 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
|
421 | "<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
|
422 | " 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
|
423 | ), |
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
|
424 | ) |
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
|
425 | 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
|
426 | |
9868 | 427 | dlg = NtpParametersDialog(self.__mpy) |
428 | if dlg.exec() == QDialog.DialogCode.Accepted: | |
429 | server, tzOffset, isDst, timeout = dlg.getParameters() | |
430 | if isDst: | |
431 | tzOffset += 1 | |
432 | ||
433 | ok, err = self.__mpy.getDevice().setNetworkTime( | |
434 | server=server, tzOffset=tzOffset, timeout=timeout | |
435 | ) | |
436 | if ok: | |
437 | EricMessageBox.information( | |
438 | None, | |
439 | self.tr("Set Network Time"), | |
440 | self.tr("The device time was synchronized successfully."), | |
441 | ) | |
442 | else: | |
443 | if err: | |
444 | msg = self.tr( | |
445 | "<p>The device time could not be synchronized.</p>" | |
446 | "<p>Reason: {0}</p>" | |
447 | ).format(err) | |
448 | else: | |
449 | msg = self.tr( | |
450 | "<p>The device time could not be synchronized. Is the device" | |
451 | " connected to a WiFi network?</p>" | |
452 | ) | |
453 | EricMessageBox.critical( | |
454 | None, | |
455 | self.tr("Set Network Time"), | |
456 | msg, | |
457 | ) |