Fri, 25 Apr 2025 16:23:02 +0200
MicroPython
- Extended the handling of Access Point security/authmode settings to be more dynamic.
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:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10439
diff
changeset
|
3 | # Copyright (c) 2023 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
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:
diff
changeset
|
4 | # |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing a dialog to configure the Access Point interface. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | from PyQt6.QtCore import pyqtSlot |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | from PyQt6.QtWidgets import QDialog, QDialogButtonBox, QLineEdit |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | from eric7 import Preferences |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
14 | from eric7.EricGui import EricPixmapCache |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
16 | from .Ui_WifiApConfigDialog import Ui_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:
diff
changeset
|
17 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
19 | class WifiApConfigDialog(QDialog, Ui_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:
diff
changeset
|
20 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | Class implementing a dialog to configure the Access Point interface. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | |
11236 | 24 | def __init__(self, withIP, securityModes, parent=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:
diff
changeset
|
25 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | Constructor |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | |
9797 | 28 | @param withIP flag indicating to ask the user for an IP configuration |
29 | @type bool | |
11236 | 30 | @param securityModes list of supported security modes |
31 | @type list of str | |
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:
diff
changeset
|
32 | @param parent reference to the parent widget (defaults to 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:
diff
changeset
|
33 | @type QWidget (optional) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
34 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | super().__init__(parent) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | self.setupUi(self) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
37 | |
11236 | 38 | self.__securityMapping = { |
39 | "SEC_DPP": "DPP", | |
40 | "SEC_OPEN": self.tr("Open"), | |
41 | "SEC_OWE": "OWE", | |
42 | "SEC_WAPI": "WAPI", | |
43 | "SEC_WEP": "WEP", | |
44 | "SEC_WPA": "WPA", | |
45 | "SEC_WPA_WPA2": "WPA/WPA2", | |
46 | "SEC_WPA2": "WPA2", | |
47 | "SEC_WPA2_ENT": "WPA2 Enterprise", | |
48 | "SEC_WPA2_WPA3": "WPA2/WPA3", | |
49 | "SEC_WPA2_WPA3_ENT": "WPA2/WPA3 Enterprise", | |
50 | "SEC_WPA3": "WPA3", | |
51 | "SEC_WPA3_ENT": "WPA3 Enterprise", | |
52 | "SEC_WPA3_ENT_192": "WPA3 Enterprise (192-bit)", | |
53 | "SEC_WPA3_EXT_PSK": "WPA3 Extended", | |
54 | "SEC_WPA3_EXT_PSK_MIXED_MODE": "WPA3 Extended, Mixed Mode", | |
55 | } | |
56 | ||
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:
diff
changeset
|
57 | self.apShowPasswordButton.setIcon(EricPixmapCache.getIcon("showPassword")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
59 | # populate the WiFi security mode combo box |
11236 | 60 | for securityMode in sorted(securityModes): |
61 | try: | |
62 | self.apSecurityComboBox.addItem( | |
63 | self.__securityMapping[securityMode], securityMode | |
64 | ) | |
65 | except KeyError: | |
66 | self.apSecurityComboBox.addItem(securityMode, securityMode) | |
67 | self.apSecurityComboBox.model().sort(0) | |
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:
diff
changeset
|
68 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(False) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
70 | |
9797 | 71 | # populate the WiFi fields with data saved to the preferences |
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:
diff
changeset
|
72 | self.apSsidEdit.setText(Preferences.getMicroPython("WifiApName")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | self.apPasswordEdit.setText(Preferences.getMicroPython("WifiApPassword")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | index = self.apSecurityComboBox.findData( |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | Preferences.getMicroPython("WifiApAuthMode") |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | ) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | if index == -1: |
11236 | 78 | index = self.apSecurityComboBox.findData("SEC_WPA_WPA2") |
79 | # default it to WPA/WPA2 in case of an issue | |
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:
diff
changeset
|
80 | self.apSecurityComboBox.setCurrentIndex(index) |
10153 | 81 | self.hostnameEdit.setText(Preferences.getMicroPython("WifiApHostname")) |
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:
diff
changeset
|
82 | |
9797 | 83 | self.__withIP = withIP |
84 | ||
85 | self.ipv4GroupBox.setVisible(withIP) | |
86 | if withIP: | |
87 | # populate the IPv4 configuration with data saved to the preferences | |
88 | self.addressEdit.setText(Preferences.getMicroPython("WifiApAddress")) | |
89 | self.netmaskEdit.setText(Preferences.getMicroPython("WifiApNetmask")) | |
90 | self.gatewayEdit.setText(Preferences.getMicroPython("WifiApGateway")) | |
91 | self.dnsEdit.setText(Preferences.getMicroPython("WifiApDNS")) | |
92 | ||
93 | # connect the IPv4 fields | |
94 | self.addressEdit.addressChanged.connect(self.__updateOk) | |
95 | self.netmaskEdit.addressChanged.connect(self.__updateOk) | |
96 | self.gatewayEdit.addressChanged.connect(self.__updateOk) | |
97 | self.dnsEdit.addressChanged.connect(self.__updateOk) | |
98 | ||
99 | # connect the WiFi fields | |
100 | self.apSsidEdit.textChanged.connect(self.__updateOk) | |
101 | self.apPasswordEdit.textChanged.connect(self.__updateOk) | |
102 | self.apSecurityComboBox.currentIndexChanged.connect(self.__updateOk) | |
103 | ||
104 | self.__updateOk() | |
105 | ||
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:
diff
changeset
|
106 | msh = self.minimumSizeHint() |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
107 | self.resize(max(self.width(), msh.width()), msh.height()) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | @pyqtSlot() |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | def __updateOk(self): |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
111 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | Private method to update the enabled state of the OK button. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | enable = bool(self.apSsidEdit.text()) |
11236 | 115 | if self.apSecurityComboBox.currentData() != "SEC_OPEN": |
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:
diff
changeset
|
116 | # security needs a password |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | enable &= bool(self.apPasswordEdit.text()) |
9797 | 118 | if self.__withIP: |
119 | enable &= ( | |
120 | self.addressEdit.hasAcceptableInput() | |
121 | and self.netmaskEdit.hasAcceptableInput() | |
122 | and self.gatewayEdit.hasAcceptableInput() | |
123 | and self.dnsEdit.hasAcceptableInput() | |
124 | ) | |
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:
diff
changeset
|
125 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
126 | self.buttonBox.button(QDialogButtonBox.StandardButton.Ok).setEnabled(enable) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
128 | @pyqtSlot(bool) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | def on_apShowPasswordButton_clicked(self, checked): |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Private slot to show or hide the WiFi Access Point password. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
132 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | @param checked state of the button |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | @type bool |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | if checked: |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | self.apPasswordEdit.setEchoMode(QLineEdit.EchoMode.Normal) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | self.apShowPasswordButton.setIcon(EricPixmapCache.getIcon("hidePassword")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
139 | self.apShowPasswordButton.setToolTip(self.tr("Press to hide the password")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | 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:
diff
changeset
|
141 | self.apPasswordEdit.setEchoMode(QLineEdit.EchoMode.Password) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | self.apShowPasswordButton.setIcon(EricPixmapCache.getIcon("showPassword")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | self.apShowPasswordButton.setToolTip(self.tr("Press to show the password")) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
144 | |
9868 | 145 | @pyqtSlot() |
146 | def accept(self): | |
147 | """ | |
148 | Public slot accepting the dialog. | |
149 | """ | |
150 | if self.rememberCheckBox.isChecked(): | |
151 | Preferences.setMicroPython("WifiApName", self.apSsidEdit.text()) | |
152 | Preferences.setMicroPython("WifiApPassword", self.apPasswordEdit.text()) | |
153 | Preferences.setMicroPython( | |
154 | "WifiApAuthMode", self.apSecurityComboBox.currentData() | |
155 | ) | |
10153 | 156 | Preferences.setMicroPython("WifiApHostname", self.hostnameEdit.text()) |
9868 | 157 | if self.__withIP: |
158 | Preferences.setMicroPython("WifiApAddress", self.addressEdit.text()) | |
159 | Preferences.setMicroPython("WifiApNetmask", self.netmaskEdit.text()) | |
160 | Preferences.setMicroPython("WifiApGateway", self.gatewayEdit.text()) | |
161 | Preferences.setMicroPython("WifiApDNS", self.dnsEdit.text()) | |
162 | ||
11236 | 163 | Preferences.syncPreferences() |
164 | ||
9868 | 165 | super().accept() |
166 | ||
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:
diff
changeset
|
167 | def getApConfig(self): |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
168 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | Public method to get the entered access point configuration data. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | @return tuple containing the SSID, the password, the selected security mode |
9868 | 172 | and a tuple with the IPv4 address, the netmask, the gateway address and |
173 | the resolver address | |
174 | @rtype tuple of (str, str, int, (str, str, str, str)) | |
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:
diff
changeset
|
175 | """ |
9798 | 176 | ifconfig = ( |
177 | ( | |
9797 | 178 | self.addressEdit.text(), |
179 | self.netmaskEdit.text(), | |
180 | self.gatewayEdit.text(), | |
181 | self.dnsEdit.text(), | |
182 | ) | |
9798 | 183 | if self.__withIP |
184 | else ("", "", "", "") | |
185 | ) | |
9797 | 186 | |
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:
diff
changeset
|
187 | return ( |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | self.apSsidEdit.text(), |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
189 | self.apPasswordEdit.text(), |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | self.apSecurityComboBox.currentData(), |
10153 | 191 | self.hostnameEdit.text(), |
9797 | 192 | ifconfig, |
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:
diff
changeset
|
193 | ) |