src/eric7/MicroPython/WifiDialogs/WifiController.py

Tue, 10 Dec 2024 15:46:34 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 10 Dec 2024 15:46:34 +0100
branch
eric7
changeset 11090
f5f5f5803935
parent 11005
b918c6c2736b
child 11166
fd914f897dcf
permissions
-rw-r--r--

Updated copyright for 2025.

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
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 11005
diff changeset
3 # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
9776
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
10806
2f6df822e3b9 Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
13 from eric7 import EricUtilities
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
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
28 @type MicroPythonWidget
9776
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)
10022
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
57 if not self.__mpy.getDevice().hasCircuitPython():
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
58 wifiMenu.addAction(self.tr("Enable WebREPL"), self.__enableWebrepl)
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
59 wifiMenu.addAction(self.tr("Disable WebREPL"), self.__disableWebrepl)
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
60 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
61 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
62 wifiMenu.addAction(
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
63 self.tr("Start WiFi Access Point with IP"), self.__startAccessPointIP
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
64 )
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
65 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
66 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
67 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
68 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
69 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
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 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
72 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
73 )
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
74 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
75 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
76 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
77 )
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
78 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
79 wifiMenu.addAction(self.tr("Set Network Time"), self.__setNetworkTime)
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
80
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 # 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
82 self.__mpy.getDevice().addDeviceWifiEntries(wifiMenu)
9776
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 return wifiMenu
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 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def __showWifiStatus(self):
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 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
90 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 from .WifiStatusDialog import WifiStatusDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 try:
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
94 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
95
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
96 dlg = WifiStatusDialog(
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
97 clientStatus, apStatus, overallStatus, parent=self.__mpy
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
98 )
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 dlg.exec()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 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
101 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
102
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 def __connectWifi(self):
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 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
107 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 from .WifiConnectionDialog import WifiConnectionDialog
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
110 dlg = WifiConnectionDialog(parent=self.__mpy)
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 if dlg.exec() == QDialog.DialogCode.Accepted:
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
112 ssid, password, hostname = dlg.getConnectionParameters()
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
113 success, error = self.__mpy.getDevice().connectWifi(
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
114 ssid, password, hostname
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
115 )
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 EricMessageBox.information(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 "<p>The device 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
122 ).format(ssid),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.tr("Connect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 self.tr(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 "<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
130 "<p>Reason: {1}</p>"
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 ).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
132 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 @pyqtSlot()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 def __disconnectWifi(self):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 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
138 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 success, error = self.__mpy.getDevice().disconnectWifi()
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 if success:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 EricMessageBox.information(
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"),
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 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
145 )
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 else:
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 EricMessageBox.critical(
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 None,
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 self.tr("Disconnect WiFi"),
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 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
151 "<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
152 ).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
153 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
154
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
155 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
156 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
157 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
158 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
159 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
160 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
161 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
162 msg = (
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
163 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
164 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
165 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
166 )
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.information(
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 msg,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
171 )
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
172 else:
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
173 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
174 None,
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
175 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
176 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
177 "<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
178 ).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
179 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
180
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
181 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
182 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
183 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
184 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
185 """
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
186 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
187
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
188 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
189 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
190 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
191
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
192 @pyqtSlot()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
193 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
194 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
195 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
196
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
197 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
198 """
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
199 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
200
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
201 dlg = WifiConnectionDialog(
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
202 withCountry=self.__mpy.getDevice().hasWifiCountry(),
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
203 parent=self.__mpy,
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
204 )
9787
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
205 if dlg.exec() == QDialog.DialogCode.Accepted:
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
206 ssid, password, hostname = dlg.getConnectionParameters()
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
207 country = dlg.getCountryCode()
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
208 success, error = self.__mpy.getDevice().writeCredentials(
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
209 ssid, password, hostname, country
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
210 )
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
211 if success:
9886
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
212 if self.__mpy.getDevice().hasCircuitPython():
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
213 # 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
214 # available.
10806
2f6df822e3b9 Moved some functions to the EricUtilities package for consistency and adapted the code base accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
215 if EricUtilities.versionToTuple(
9886
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
216 self.__mpy.getDevice().getDeviceData("release")
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
217 ) >= (8, 0, 0):
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
218 EricMessageBox.information(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
219 None,
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
220 self.tr("Write WiFi Credentials"),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
221 self.tr(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
222 "<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
223 " 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
224 "</p>"
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
225 ),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
226 )
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
227 else:
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
228 EricMessageBox.information(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
229 None,
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
230 self.tr("Write WiFi Credentials"),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
231 self.tr(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
232 "<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
233 " 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
234 " importing it.</p>"
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
235 ),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
236 )
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
237 else:
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
238 EricMessageBox.information(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
239 None,
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
240 self.tr("Write WiFi Credentials"),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
241 self.tr(
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
242 "<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
243 " 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
244 ),
1a4f05b0dc00 Modified feedback message to reflect CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
245 )
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
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("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
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 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
252 "<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()
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
257 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
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 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
260
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
261 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
262 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
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 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
265 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
266 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
267 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
268 "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
269 " 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
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 )
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 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
273 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
274 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
275 EricMessageBox.information(
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
276 None,
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
277 self.tr("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
278 self.tr(
9794
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
279 "<p>The WiFi credentials were removed from the device. The"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
280 " device will not connect to the WiFi network at boot time"
21fd7c63b487 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
281 " anymore.</p>"
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
282 ),
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
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 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
286 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
287 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
288 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
289 "<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
290 "</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
291 ).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
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 __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
296 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
297 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
298
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
299 @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
300 @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
301 """
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
302 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
303
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
304 dlg = WifiApConfigDialog(withIP=withIP, parent=self.__mpy)
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
305 if dlg.exec() == QDialog.DialogCode.Accepted:
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
306 ssid, password, security, hostname, 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
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 ok, err = self.__mpy.getDevice().startAccessPoint(
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
309 ssid,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
310 security=security,
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
311 password=password,
10153
ffe7432f716b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10022
diff changeset
312 hostname=hostname,
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
313 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
314 )
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 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
316 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
317 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
318 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
319 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
320 "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
321 ),
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
322 )
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
323 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
324 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
325 if err:
9872
6b8aa1c50c6d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9870
diff changeset
326 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
327 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
328 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
329 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
330 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
331 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
332
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
333 @pyqtSlot()
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
334 def __startAccessPointIP(self):
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
335 """
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
336 Private slot to start the Access Point interface of the connected device
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
337 with given IP parameters.
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
338 """
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
339 self.__startAccessPoint(withIP=True)
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
340
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9794
diff changeset
341 @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
342 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
343 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
344 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
345 """
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
346 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
347 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
348 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
349 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
350 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
351 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
352 )
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
353 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
354 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
355 if err:
9872
6b8aa1c50c6d Updated translations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9870
diff changeset
356 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
357 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
358 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
359 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
360 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
361 )
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
362
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
363 @pyqtSlot()
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
364 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
365 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
366 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
367 interface.
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
368 """
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
369 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
370
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 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
372 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
373
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
374 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
375 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
376 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
377 if stations:
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
378 dlg = WifiApStationsDialog(stations, parent=self.__mpy)
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
379 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
380 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
381 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
382 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
383 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
384 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
385 )
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
386
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
387 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
388 """
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
389 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
390
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
391 @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
392 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
393 @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
394 """
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
395 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
396 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
397 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
398 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
399 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
400 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
401 )
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
402 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
403 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
404 if err:
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
405 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
406 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
407 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
408 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
409 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
410 )
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
411
9878
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9875
diff changeset
412 @pyqtSlot()
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
413 def __setNetworkTime(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
414 """
9878
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9875
diff changeset
415 Private slot to synchronize the device clock to network time.
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
416 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
417 from ..NtpParametersDialog import NtpParametersDialog
9870
0399d3607829 Fixed a few code formatting and style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
418
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
419 device = self.__mpy.getDevice()
10230
1311cd5d117e MicroPython interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10153
diff changeset
420 if not device.hasNetworkTime():
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
421 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
422 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
423 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
424 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
425 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
426 "<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
427 " 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
428 ),
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
429 )
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
430 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
431 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
432 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
433 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
434 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
435 "<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
436 " 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
437 ),
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
438 )
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
439 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
440
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
441 dlg = NtpParametersDialog(parent=self.__mpy)
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
442 if dlg.exec() == QDialog.DialogCode.Accepted:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
443 server, tzOffset, isDst, timeout = dlg.getParameters()
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
444 if isDst:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
445 tzOffset += 1
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
446
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
447 ok, err = self.__mpy.getDevice().setNetworkTime(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
448 server=server, tzOffset=tzOffset, timeout=timeout
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
449 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
450 if ok:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
451 EricMessageBox.information(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
452 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
453 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
454 self.tr("The device time was synchronized successfully."),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
455 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
456 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
457 if err:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
458 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
459 "<p>The device time could not be synchronized.</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
460 "<p>Reason: {0}</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
461 ).format(err)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
462 else:
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
463 msg = self.tr(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
464 "<p>The device time could not be synchronized. Is the device"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
465 " connected to a WiFi network?</p>"
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
466 )
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
467 EricMessageBox.critical(
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
468 None,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
469 self.tr("Set Network Time"),
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
470 msg,
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
471 )
10022
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
472
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
473 @pyqtSlot()
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
474 def __enableWebrepl(self):
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
475 """
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
476 Private slot to enable the WebREPL server of the device.
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
477
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
478 This will also modify the boot script.
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
479 """
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
480 from ..MicroPythonWebreplParametersDialog import (
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
481 MicroPythonWebreplParametersDialog,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
482 )
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
483
11005
b918c6c2736b MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10806
diff changeset
484 dlg = MicroPythonWebreplParametersDialog(parent=self.__mpy)
10022
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
485 if dlg.exec() == QDialog.DialogCode.Accepted:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
486 (password,) = dlg.getParameters()
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
487 success, error = self.__mpy.getDevice().enableWebrepl(password)
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
488 if success:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
489 EricMessageBox.information(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
490 None,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
491 self.tr("Enable WebREPL"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
492 self.tr(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
493 "<p>The WebREPL server of the device will be activated after a"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
494 " reboot.</p>"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
495 ),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
496 )
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
497 else:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
498 EricMessageBox.critical(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
499 None,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
500 self.tr("Enable WebREPL"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
501 self.tr(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
502 "<p>The WebREPL server of the device could not be enabled.</p>"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
503 "<p>Reason: {0}</p>"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
504 ).format(error if error else self.tr("unknown")),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
505 )
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
506
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
507 @pyqtSlot()
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
508 def __disableWebrepl(self):
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
509 """
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
510 Private slot to disable the WebREPL server of the device.
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
511
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
512 This will not remove the 'webrepl_cfg.py' file. It will just modify the boot
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
513 script.
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
514 """
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
515 ok = EricMessageBox.yesNo(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
516 None,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
517 self.tr("Disable WebREPL"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
518 self.tr("Shall the WebREPL server of the device really be disabled?"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
519 )
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
520 if ok:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
521 success, error = self.__mpy.getDevice().disableWebrepl()
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
522 if success:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
523 EricMessageBox.information(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
524 None,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
525 self.tr("Disable WebREPL"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
526 self.tr(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
527 "<p>The WebREPL server of the device will not be enabled"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
528 " at boot time anymore.</p>"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
529 ),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
530 )
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
531 else:
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
532 EricMessageBox.critical(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
533 None,
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
534 self.tr("Disable WebREPL"),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
535 self.tr(
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
536 "<p>The WebREPL server of the device could not be disabled."
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
537 "</p><p>Reason: {0}</p>"
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
538 ).format(error if error else self.tr("unknown")),
a95800b414b7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9886
diff changeset
539 )

eric ide

mercurial