src/eric7/MicroPython/WifiDialogs/WifiController.py

Mon, 05 May 2025 17:40:08 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 05 May 2025 17:40:08 +0200
branch
eric7
changeset 11263
28f0ead11a82
parent 11236
75c26fe1d1c7
child 11270
0e220c26e60e
permissions
-rw-r--r--

MicroPython
- Added support for IPv6 for WiFi and Ethernet enabled devices (MPy ≥ 1.24.0).

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

eric ide

mercurial