Sat, 26 Apr 2025 12:34:32 +0200
MicroPython
- Added a configuration option to disable the support for the no longer produced Pimoroni Pico Wireless Pack.
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
11090
f5f5f5803935
Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10683
diff
changeset
|
3 | # Copyright (c) 2019 - 2025 Detlev Offenbach <detlev@die-offenbachs.de> |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing some utility functions and the MicroPythonDevice base |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | class. |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | """ |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
11 | import ast |
9496
05017f795c24
Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
12 | import contextlib |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
13 | import copy |
11190 | 14 | import hashlib |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
15 | import os |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
16 | import time |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
9756
9854647c8c5c
Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9755
diff
changeset
|
18 | from PyQt6.QtCore import QObject, pyqtSlot |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
19 | from PyQt6.QtWidgets import QInputDialog |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
21 | from eric7 import Preferences |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
22 | from eric7.EricWidgets import EricMessageBox |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
23 | from eric7.EricWidgets.EricApplication import ericApp |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
25 | |
9756
9854647c8c5c
Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9755
diff
changeset
|
26 | class BaseDevice(QObject): |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | Base class for the more specific MicroPython devices. |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
29 | |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
30 | It includes a list of commands for general use on the various boards. |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
31 | If a board needs special treatment, the command should be overwritten |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
32 | in the board specific subclass. Commands are provided to perform operations |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
33 | on the file system of a connected MicroPython device, for getting and setting |
9906
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
34 | the time on the board and getting board related data. |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
35 | |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
36 | Supported file system commands are: |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
37 | <ul> |
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
|
38 | <li>cd: change directory</li> |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
39 | <li>exists: test the existence of a file or directory on the device</li> |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
40 | <li>fileSystemInfo: get information about the file system</li> |
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
|
41 | <li>get: get a file from the connected device</li> |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
42 | <li>getData: read data of a file of the connected device</li> |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
43 | <li>lls: directory listing with meta data</li> |
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
|
44 | <li>ls: directory listing</li> |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
45 | <li>mkdir: create a new directory</li> |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
46 | <li>put: copy a file to the connected device</li> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
47 | <li>putData: write data to a file of the connected device</li> |
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
|
48 | <li>pwd: get the current directory</li> |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
49 | <li>rm: remove a file from the connected device</li> |
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
|
50 | <li>rmdir: remove an empty directory</li> |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
51 | <li>rmrf: remove a file/directory recursively (like 'rm -rf' in bash)</li> |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
52 | </ul> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
53 | |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
54 | Supported non file system commands are: |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
55 | <ul> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
56 | <li>getBoardData: get information about the connected board</li> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
57 | <li>getDeviceData: get version info about MicroPython and some implementation |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
58 | information</li> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
59 | <li>getModules: get a list of built-in modules</li> |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
60 | <li>getTime: get the current time</li> |
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
|
61 | <li>showTime: show the current time of the connected device</li> |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
62 | <li>syncTime: synchronize the time of the connected device</li> |
9979 | 63 | <li>mipInstall: install a MicroPython package with 'mip'</li> |
64 | <li>upipInstall: install a MicroPython package with 'upip'</li> | |
65 | <li>getLibPaths: get a list of library paths contained in sys.path</li> | |
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
|
66 | </ul> |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
67 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
68 | Supported WiFi commands are: |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
69 | <ul> |
9792 | 70 | <li>hasWifi: check, if the board has WiFi functionality</li> |
71 | <li>getWifiData: get WiFi status data</li> | |
72 | <li>connectWifi: connect to a WiFi network</li> | |
73 | <li>disconnectWifi: disconnect from a WiFi network</li> | |
10144 | 74 | <li>isWifiClientConnected: check the WiFi connection status as client</li> |
75 | <li>isWifiApConnected: check the WiFi connection status as access point</li> | |
9792 | 76 | <li>writeCredentials: save the WiFi credentials to the board and create |
77 | functionality to auto-connect at boot time</li> | |
78 | <li>removeCredentials: remove the saved credentials</li> | |
79 | <li>checkInternet: check, if internet access is possible</li> | |
80 | <li>scanNetworks: scan for available WiFi networks</li> | |
81 | <li>deactivateInterface: deactivate a WiFi interface</li> | |
82 | <li>startAccessPoint: start an access point</li> | |
83 | <li>stopAccessPoint: stop the access point</li> | |
84 | <li>getConnectedClients: get a list of connected WiFi clients</li> | |
11236 | 85 | <li>getSecurityModes: get a list of supported security modes</li> |
86 | <li>enableWebrepl | |
87 | <li>disableWebrepl | |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
88 | </ul> |
9855 | 89 | |
90 | Supported Bluetooth commands are: | |
91 | <ul> | |
92 | <li>hasBluetooth: check, if the board has Bluetooth functionality</li> | |
93 | <li>getBluetoothStatus: get Bluetooth status data</li> | |
9889
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
94 | <li>activateBluetoothInterface: activate a Bluetooth interface</li> |
9855 | 95 | <li>deactivateBluetoothInterface: deactivate a Bluetooth interface</li> |
9889
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
96 | <li>getDeviceScan: scan for visible Bluetooth devices</li> |
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
97 | </ul> |
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
98 | |
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
99 | Supported Ethernet commands are: |
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
100 | <ul> |
10144 | 101 | <li>hasEthernet: check, if the board has Ethernet functionality</li> |
102 | <li>getEthernetStatus: get Ethernet status data</li> | |
103 | <li>connectToLan: connect to an Ethernet network</li> | |
104 | <li>disconnectFromLan: disconnect from an Ethernet network</li> | |
105 | <li>isLanConnected: check the LAN connection status</li> | |
106 | <li>checkInternetViaLan: check, if internet access via LAN is possible</li> | |
107 | <li>deactivateEthernet: deactivate the Ethernet interface</li> | |
9889
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
108 | <li>writeLanAutoConnect: save IPv4 parameters to the board and create a script |
10144 | 109 | to connect the board to the LAN</li> |
110 | <li>removeLanAutoConnect: remove the IPv4 parameters and script from the board</li> | |
9855 | 111 | </ul> |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
112 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
113 | |
8117
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
114 | def __init__(self, microPythonWidget, deviceType, parent=None): |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
115 | """ |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
116 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
117 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
118 | @param microPythonWidget reference to the main MicroPython widget |
7134
21d23ca51680
Renamed "MicroPythonReplWidget" to "MicroPythonWidget".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7129
diff
changeset
|
119 | @type MicroPythonWidget |
8117
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
120 | @param deviceType device type assigned to this device interface |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
121 | @type str |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | @param parent reference to the parent object |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | @type QObject |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
124 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8134
diff
changeset
|
125 | super().__init__(parent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | |
8117
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
127 | self._deviceType = deviceType |
9989 | 128 | self._interface = None |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
129 | self.microPython = microPythonWidget |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
130 | self._deviceData = {} # dictionary with essential device data |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
131 | |
9827 | 132 | self._submitMode = "raw" # default is 'raw' mode to submit commands |
9799 | 133 | |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
134 | def setConnected(self, connected): |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
135 | """ |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
136 | Public method to set the connection state. |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
137 | |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
138 | Note: This method can be overwritten to perform actions upon connect |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
139 | or disconnect of the device. |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
140 | |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
141 | @param connected connection state |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
142 | @type bool |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
143 | """ |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
144 | self._deviceData = {} |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
145 | |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
146 | if connected: |
9989 | 147 | self._interface = self.microPython.deviceInterface() |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
148 | with contextlib.suppress(OSError): |
10173 | 149 | data = self.__getDeviceData() |
150 | if "mpy_name" in data: | |
151 | self._deviceData = data | |
152 | self._deviceData["local_mip"] = ( | |
153 | not self._deviceData["mip"] | |
154 | and not self._deviceData["upip"] | |
155 | and not self.hasCircuitPython() | |
156 | ) | |
157 | ( | |
158 | self._deviceData["wifi"], | |
159 | self._deviceData["wifi_type"], | |
160 | ) = self.hasWifi() | |
161 | self._deviceData["bluetooth"] = self.hasBluetooth() | |
162 | ( | |
163 | self._deviceData["ethernet"], | |
164 | self._deviceData["ethernet_type"], | |
165 | ) = self.hasEthernet() | |
166 | else: | |
167 | self._deviceData = {} | |
9989 | 168 | else: |
169 | self._interface = None | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
170 | |
8117
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
171 | def getDeviceType(self): |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
172 | """ |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
173 | Public method to get the device type. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
174 | |
8117
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
175 | @return type of the device |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
176 | @rtype str |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
177 | """ |
aaa5e0eacd4e
MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8096
diff
changeset
|
178 | return self._deviceType |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
179 | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
180 | def getDeviceData(self, key=None): |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
181 | """ |
10034 | 182 | Public method to get a copy of the determined device data or part of them. |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
183 | |
10034 | 184 | @param key name or a list of names of the data to get (None to get all data) |
185 | (defaults to None) | |
186 | @type str or list of str (optional) | |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
187 | @return dictionary containing the essential device data |
10034 | 188 | @rtype dict or Any |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
189 | """ |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
190 | if key is None: |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
191 | return copy.deepcopy(self._deviceData) |
10034 | 192 | elif isinstance(key, list): |
193 | res = {} | |
194 | for name in key: | |
195 | try: | |
196 | res[name] = self._deviceData[name] | |
197 | except KeyError: | |
198 | res[name] = None | |
199 | return res | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
200 | else: |
9816 | 201 | try: |
202 | return self._deviceData[key] | |
203 | except KeyError: | |
204 | return None | |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
205 | |
9804 | 206 | def checkDeviceData(self, quiet=True): |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
207 | """ |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
208 | Public method to check the validity of the device data determined during |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
209 | connecting the device. |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
210 | |
9804 | 211 | @param quiet flag indicating to not show an info message, if the data is |
212 | not available (defaults to True) | |
213 | @type bool (optional) | |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
214 | @return flag indicating valid device data |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
215 | @rtype bool |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
216 | """ |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
217 | if bool(self._deviceData): |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
218 | return True |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
219 | else: |
9804 | 220 | if not quiet: |
221 | EricMessageBox.critical( | |
222 | None, | |
9803 | 223 | self.tr("Device Data Not Available"), |
9804 | 224 | self.tr( |
225 | """<p>The device data is not available. Try to connect to the""" | |
226 | """ device again. Aborting...</p>""" | |
227 | ).format(self.getDeviceType()), | |
228 | ) | |
9751
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
229 | return False |
606ac0e26533
Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9749
diff
changeset
|
230 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
231 | def hasCircuitPython(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
232 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
233 | Public method to check, if the connected device is flashed with CircuitPython. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
234 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
235 | @return flag indicating CircuitPython |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
236 | @rtype bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
237 | """ |
10173 | 238 | try: |
239 | return ( | |
240 | self.checkDeviceData() | |
241 | and self._deviceData["mpy_name"].lower() == "circuitpython" | |
242 | ) | |
243 | except KeyError: | |
244 | return False | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
245 | |
9827 | 246 | def submitMode(self): |
247 | """ | |
248 | Public method to get the submit mode of the device. | |
249 | ||
250 | @return submit mode | |
251 | @rtype str (one of 'raw', 'paste') | |
252 | """ | |
253 | return self._submitMode | |
254 | ||
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
255 | def setButtons(self): |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | """ |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
257 | Public method to enable the supported action buttons. |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
258 | """ |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
259 | self.microPython.setActionButtons( |
9763
52f982c08301
Removed the 'Open' and 'Save' buttons from the MicroPython widget and made the repl and file manager start automatically upon connecting to the selected device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9756
diff
changeset
|
260 | run=False, repl=False, files=False, chart=False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
261 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
262 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
263 | def forceInterrupt(self): |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
264 | """ |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
265 | Public method to determine the need for an interrupt when opening the |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
266 | serial connection. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
267 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
268 | @return flag indicating an interrupt is needed |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
269 | @rtype bool |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
270 | """ |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
271 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
272 | |
7125
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
273 | def deviceName(self): |
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
274 | """ |
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
275 | Public method to get the name of the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | |
7125
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
277 | @return name of the device |
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
278 | @rtype str |
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
279 | """ |
2028553ee58c
CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7123
diff
changeset
|
280 | return self.tr("Unsupported Device") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
281 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
282 | def canStartRepl(self): |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
283 | """ |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
284 | Public method to determine, if a REPL can be started. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
285 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
286 | @return tuple containing a flag indicating it is safe to start a REPL |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
287 | and a reason why it cannot. |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
288 | @rtype tuple of (bool, str) |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
289 | """ |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
290 | return False, self.tr("REPL is not supported by this device.") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
291 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
292 | def setRepl(self, on): |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
293 | """ |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
294 | Public method to set the REPL status and dependent status. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
295 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
296 | @param on flag indicating the active status |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
297 | @type bool |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
298 | """ |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
299 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
300 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
301 | def canStartPlotter(self): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
302 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
303 | Public method to determine, if a Plotter can be started. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
304 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
305 | @return tuple containing a flag indicating it is safe to start a |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
306 | Plotter and a reason why it cannot. |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
307 | @rtype tuple of (bool, str) |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
308 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
309 | return False, self.tr("Plotter is not supported by this device.") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
310 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
311 | def setPlotter(self, on): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
312 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
313 | Public method to set the Plotter status and dependent status. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
314 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
315 | @param on flag indicating the active status |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
316 | @type bool |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
317 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
318 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
319 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
320 | def canRunScript(self): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
321 | """ |
7091
84d2a73b448a
EspDevices, MicroPythonDevices: fixed a wrong source docu string.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7082
diff
changeset
|
322 | Public method to determine, if a script can be executed. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
324 | @return tuple containing a flag indicating it is safe to start a |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
325 | Plotter and a reason why it cannot. |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
326 | @rtype tuple of (bool, str) |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
327 | """ |
9576
be9f8e7e42e0
Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9498
diff
changeset
|
328 | return False, self.tr("Running scripts is not supported by this device.") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
329 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
330 | def runScript(self, script): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
331 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
332 | Public method to run the given Python script. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
333 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
334 | @param script script to be executed |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
335 | @type str |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
336 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
337 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
338 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
339 | def canStartFileManager(self): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
340 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
341 | Public method to determine, if a File Manager can be started. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
342 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
343 | @return tuple containing a flag indicating it is safe to start a |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
344 | File Manager and a reason why it cannot. |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
345 | @rtype tuple of (bool, str) |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
346 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
347 | return False, self.tr("File Manager is not supported by this device.") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
348 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
349 | def setFileManager(self, on): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
350 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
351 | Public method to set the File Manager status and dependent status. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
352 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
353 | @param on flag indicating the active status |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
354 | @type bool |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
355 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
356 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
357 | |
7129
3cc19aec959a
MicroPythonDevicces: added a method to indicate that a device allows access to its file system via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7125
diff
changeset
|
358 | def supportsLocalFileAccess(self): |
3cc19aec959a
MicroPythonDevicces: added a method to indicate that a device allows access to its file system via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7125
diff
changeset
|
359 | """ |
3cc19aec959a
MicroPythonDevicces: added a method to indicate that a device allows access to its file system via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7125
diff
changeset
|
360 | Public method to indicate file access via a local directory. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
361 | |
7129
3cc19aec959a
MicroPythonDevicces: added a method to indicate that a device allows access to its file system via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7125
diff
changeset
|
362 | @return flag indicating file access via local directory |
7145
ceb3e8b242c1
Regenerated source docu after merge with 'micropython' branch.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7134
diff
changeset
|
363 | @rtype bool |
7129
3cc19aec959a
MicroPythonDevicces: added a method to indicate that a device allows access to its file system via a local directory.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7125
diff
changeset
|
364 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
365 | return False # default |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
366 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
367 | def getWorkspace(self): |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
368 | """ |
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
369 | Public method to get the workspace directory. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
370 | |
7058
bdd583f96e96
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7054
diff
changeset
|
371 | @return workspace directory used for saving files |
7054
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
372 | @rtype str |
fb84d8489bc1
Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
373 | """ |
8067
a467ab075be0
MicroPython: added buttons to go to the 'home' directory (local and on device) to the MicroPython file manager and improved the workspace handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8062
diff
changeset
|
374 | return ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
375 | Preferences.getMicroPython("MpyWorkspace") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
376 | or Preferences.getMultiProject("Workspace") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
377 | or os.path.expanduser("~") |
8067
a467ab075be0
MicroPython: added buttons to go to the 'home' directory (local and on device) to the MicroPython file manager and improved the workspace handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8062
diff
changeset
|
378 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
379 | |
9944 | 380 | def setWorkspace(self, workspacePath): |
381 | """ | |
382 | Public method to set the device workspace directory. | |
383 | ||
384 | @param workspacePath directory to be used for saving files | |
385 | @type str | |
386 | """ | |
387 | # nothing to do here | |
388 | pass | |
389 | ||
8062
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
390 | def selectDeviceDirectory(self, deviceDirectories): |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
391 | """ |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
392 | Public method to select the device directory from a list of detected |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
393 | ones. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
394 | |
8062
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
395 | @param deviceDirectories list of directories to select from |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
396 | @type list of str |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
397 | @return selected directory or an empty string |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
398 | @rtype str |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
399 | """ |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
400 | deviceDirectory, ok = QInputDialog.getItem( |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
401 | None, |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
402 | self.tr("Select Device Directory"), |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
403 | self.tr("Select the directory for the connected device:"), |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
404 | [""] + deviceDirectories, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
405 | 0, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
406 | False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
407 | ) |
8062
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
408 | if ok: |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
409 | return deviceDirectory |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
410 | else: |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
411 | # user cancelled |
8dc5acb30a8b
MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8055
diff
changeset
|
412 | return "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
413 | |
9989 | 414 | def executeCommands(self, commands, *, mode="raw", timeout=0): |
415 | """ | |
416 | Public method to send commands to the connected device and return the | |
417 | result. | |
418 | ||
419 | If no connected interface is available, empty results will be returned. | |
420 | ||
421 | @param commands list of commands to be executed | |
422 | @type str or list of str | |
423 | @keyparam mode submit mode to be used (one of 'raw' or 'paste') (defaults to | |
424 | 'raw') | |
425 | @type str | |
426 | @keyparam timeout per command timeout in milliseconds (0 for configured default) | |
427 | (defaults to 0) | |
428 | @type int (optional) | |
429 | @return tuple containing stdout and stderr output of the device | |
430 | @rtype tuple of (bytes, bytes) | |
431 | """ | |
432 | if self._interface is None: | |
433 | return b"", b"" | |
434 | ||
435 | return self._interface.execute(commands, mode=mode, timeout=timeout) | |
436 | ||
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
437 | def sendCommands(self, commandsList): |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
438 | """ |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
439 | Public method to send a list of commands to the device. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
440 | |
7059
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
441 | @param commandsList list of commands to be sent to the device |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
442 | @type list of str |
a8fad276cbd5
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7058
diff
changeset
|
443 | """ |
9989 | 444 | if self._interface is not None: |
445 | self._interface.executeAsync(commandsList, self._submitMode) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
446 | |
7065
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
447 | @pyqtSlot() |
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
448 | def handleDataFlood(self): |
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
449 | """ |
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
450 | Public slot handling a data floof from the device. |
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
451 | """ |
e3d04faced34
Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7061
diff
changeset
|
452 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
453 | |
7108
4f6133a01c6a
Started rearranging menu structure and testing and fixing on CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7095
diff
changeset
|
454 | def addDeviceMenuEntries(self, menu): |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
455 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
456 | Public method to add device specific entries to the given menu. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
457 | |
7082
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
458 | @param menu reference to the context menu |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
459 | @type QMenu |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
460 | """ |
ec199ef0cfc6
MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7068
diff
changeset
|
461 | pass |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
462 | |
8096 | 463 | def hasFlashMenuEntry(self): |
464 | """ | |
465 | Public method to check, if the device has its own flash menu entry. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
466 | |
8096 | 467 | @return flag indicating a specific flash menu entry |
468 | @rtype bool | |
469 | """ | |
470 | return False | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
471 | |
7123
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
472 | def hasTimeCommands(self): |
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
473 | """ |
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
474 | Public method to check, if the device supports time commands. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
475 | |
7123
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
476 | The default returns True. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
477 | |
7123
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
478 | @return flag indicating support for time commands |
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
479 | @rtype bool |
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
480 | """ |
94948e2aa0a5
Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7108
diff
changeset
|
481 | return True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
482 | |
7161
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
483 | def hasDocumentationUrl(self): |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
484 | """ |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
485 | Public method to check, if the device has a configured documentation |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
486 | URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
487 | |
7161
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
488 | @return flag indicating a configured documentation URL |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
489 | @rtype bool |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
490 | """ |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
491 | return bool(self.getDocumentationUrl()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
492 | |
7161
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
493 | def getDocumentationUrl(self): |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
494 | """ |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
495 | Public method to get the device documentation URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
496 | |
7161
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
497 | @return documentation URL of the device |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
498 | @rtype str |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
499 | """ |
728018c32b09
MicroPythonWidget: added actions to show the device documentation and to open the configuration page to the hamburger menu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7145
diff
changeset
|
500 | return "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
501 | |
7328 | 502 | def hasFirmwareUrl(self): |
503 | """ | |
504 | Public method to check, if the device has a configured firmware | |
505 | download URL. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
506 | |
7328 | 507 | @return flag indicating a configured firmware download URL |
508 | @rtype bool | |
509 | """ | |
510 | return bool(self.getFirmwareUrl()) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
511 | |
7328 | 512 | def getFirmwareUrl(self): |
513 | """ | |
514 | Public method to get the device firmware download URL. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
515 | |
7328 | 516 | @return firmware download URL of the device |
517 | @rtype str | |
518 | """ | |
519 | return "" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
520 | |
8038
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
521 | def downloadFirmware(self): |
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
522 | """ |
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
523 | Public method to download the device firmware. |
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
524 | """ |
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
525 | url = self.getFirmwareUrl() |
73ec029d4107
MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8024
diff
changeset
|
526 | if url: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
527 | ericApp().getObject("UserInterface").launchHelpViewer(url) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
528 | |
8051
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
529 | def getDownloadMenuEntries(self): |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
530 | """ |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
531 | Public method to retrieve the entries for the downloads menu. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
532 | |
8051
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
533 | @return list of tuples with menu text and URL to be opened for each |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
534 | entry |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
535 | @rtype list of tuple of (str, str) |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
536 | """ |
b78279548993
MicroPython: changed the handling of the download stuff and corrected/extended the Calliope mini path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8038
diff
changeset
|
537 | return [] |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
538 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
539 | def _shortError(self, error): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
540 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
541 | Protected method to create a shortened error message. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
542 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
543 | @param error verbose error message |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
544 | @type bytes |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
545 | @return shortened error message |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
546 | @rtype str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
547 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
548 | if error: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
549 | decodedError = error.decode("utf-8") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
550 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
551 | return decodedError.split["\r\n"][-2] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
552 | except Exception: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
553 | return decodedError |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
554 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
555 | return self.tr("Detected an error without indications.") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
556 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
557 | def isMicrobit(self): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
558 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
559 | Public method to check, if the device is a BBC micro:bit or Calliope mini. |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
560 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
561 | @return flag indicating a micro:bit device |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
562 | @rtype bool |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
563 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
564 | return False |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
565 | |
9779
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
566 | ################################################################## |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
567 | ## Methods below implement the file system commands |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
568 | ################################################################## |
8d3c7c991085
Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9776
diff
changeset
|
569 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
570 | def supportsDirectories(self): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
571 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
572 | Public method to check, if the device supports directory operations. |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
573 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
574 | @return flag indicating directory operations are supported |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
575 | @rtype bool |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
576 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
577 | command = """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
578 | import os as __os_ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
579 | print('getcwd' in dir(__os_)) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
580 | del __os_ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
581 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
582 | out, err = self.executeCommands(command, mode=self._submitMode) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
583 | if err: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
584 | return False |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
585 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
586 | return out.strip() == b"True" |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
587 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
588 | def supportsRenameFiles(self): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
589 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
590 | Public method to check, if the device supports renaming of files. |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
591 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
592 | @return flag indicating renaming of files are supported |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
593 | @rtype bool |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
594 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
595 | command = """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
596 | import os as __os_ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
597 | print('getcwd' in dir(__os_)) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
598 | del __os_ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
599 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
600 | out, err = self.executeCommands(command, mode=self._submitMode) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
601 | if err: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
602 | return False |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
603 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
604 | return out.strip() == b"True" |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
605 | |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
606 | def exists(self, pathname): |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
607 | """ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
608 | Public method to check the existence of a file or directory. |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
609 | |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
610 | @param pathname name of the path to check |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
611 | @type str |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
612 | @return flag indicating the existence |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
613 | @rtype bool |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
614 | @exception OSError raised to indicate an issue with the device |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
615 | """ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
616 | command = """ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
617 | import os as __os_ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
618 | try: |
11183
553b50b72f5b
Fixed an issue in the MicroPython device base class determining the existence of a directory or file.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11177
diff
changeset
|
619 | _ = __os_.stat({0}) |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
620 | print(True) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
621 | except OSError: |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
622 | print(False) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
623 | del __os_ |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
624 | """.format( |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
625 | repr(pathname) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
626 | ) |
9989 | 627 | out, err = self.executeCommands(command, mode=self._submitMode) |
9852
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
628 | if err: |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
629 | raise OSError(self._shortError(err)) |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
630 | return out.strip() == b"True" |
b7aef103355a
Added a method to check the existence of a file or directory on a MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9847
diff
changeset
|
631 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
632 | def ls(self, dirname=""): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
633 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
634 | Public method to get a directory listing of the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
635 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
636 | @param dirname name of the directory to be listed |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
637 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
638 | @return tuple containg the directory listing |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
639 | @rtype tuple of str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
640 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
641 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
642 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
643 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
644 | print(__os_.listdir('{0}')) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
645 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
646 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
647 | dirname |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
648 | ) |
9989 | 649 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
650 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
651 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
652 | return ast.literal_eval(out.decode("utf-8")) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
653 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
654 | def lls(self, dirname="", fullstat=False, showHidden=False): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
655 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
656 | Public method to get a long directory listing of the connected device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
657 | including meta data. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
658 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
659 | @param dirname name of the directory to be listed |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
660 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
661 | @param fullstat flag indicating to return the full stat() tuple |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
662 | @type bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
663 | @param showHidden flag indicating to show hidden files as well |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
664 | @type bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
665 | @return list containing the directory listing with tuple entries of |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
666 | the name and and a tuple of mode, size and time (if fullstat is |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
667 | false) or the complete stat() tuple. 'None' is returned in case the |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
668 | directory doesn't exist. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
669 | @rtype tuple of (str, tuple) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
670 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
671 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
672 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
673 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
674 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
675 | def is_visible(filename, showHidden): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
676 | return showHidden or (filename[0] != '.' and filename[-1] != '~') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
677 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
678 | def stat(filename): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
679 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
680 | rstat = __os_.lstat(filename) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
681 | except: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
682 | rstat = __os_.stat(filename) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
683 | return tuple(rstat) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
684 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
685 | def listdir_stat(dirname, showHidden): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
686 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
687 | files = __os_.listdir(dirname) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
688 | except OSError: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
689 | return [] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
690 | if dirname in ('', '/'): |
9889
49728322ffb4
Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9880
diff
changeset
|
691 | return list((f, stat(dirname + f)) for f in files if is_visible(f, showHidden)) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
692 | return list( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
693 | (f, stat(dirname + '/' + f)) for f in files if is_visible(f, showHidden) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
694 | ) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
695 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
696 | print(listdir_stat('{0}', {1})) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
697 | del __os_, stat, listdir_stat, is_visible |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
698 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
699 | dirname, showHidden |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
700 | ) |
9989 | 701 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
702 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
703 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
704 | fileslist = ast.literal_eval(out.decode("utf-8")) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
705 | if fileslist is None: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
706 | return None |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
707 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
708 | if fullstat: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
709 | return fileslist |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
710 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
711 | return [(f, (s[0], s[6], s[8])) for f, s in fileslist] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
712 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
713 | def cd(self, dirname): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
714 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
715 | Public method to change the current directory on the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
716 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
717 | @param dirname directory to change to |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
718 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
719 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
720 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
721 | if dirname: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
722 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
723 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
724 | __os_.chdir('{0}') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
725 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
726 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
727 | dirname |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
728 | ) |
9989 | 729 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
730 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
731 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
732 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
733 | def pwd(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
734 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
735 | Public method to get the current directory of the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
736 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
737 | @return current directory |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
738 | @rtype str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
739 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
740 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
741 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
742 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
743 | print(__os_.getcwd()) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
744 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
745 | """ |
9989 | 746 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
747 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
748 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
749 | return out.decode("utf-8").strip() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
750 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
751 | def rm(self, filename): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
752 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
753 | Public method to remove a file from the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
754 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
755 | @param filename name of the file to be removed |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
756 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
757 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
758 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
759 | if filename: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
760 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
761 | import os as __os_ |
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
|
762 | try: |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
763 | __os_.remove('{0}') |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
764 | except OSError as 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
|
765 | if err.errno != 2: |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
766 | raise err |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
767 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
768 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
769 | filename |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
770 | ) |
9989 | 771 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
772 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
773 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
774 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
775 | def rmrf(self, name, recursive=False, force=False): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
776 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
777 | Public method to remove a file or directory recursively. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
778 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
779 | @param name of the file or directory to remove |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
780 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
781 | @param recursive flag indicating a recursive deletion |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
782 | @type bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
783 | @param force flag indicating to ignore errors |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
784 | @type bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
785 | @return flag indicating success |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
786 | @rtype bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
787 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
788 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
789 | if name: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
790 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
791 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
792 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
793 | def remove_file(name, recursive=False, force=False): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
794 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
795 | mode = __os_.stat(name)[0] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
796 | if mode & 0x4000 != 0: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
797 | if recursive: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
798 | for file in __os_.listdir(name): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
799 | success = remove_file(name + '/' + file, recursive, force) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
800 | if not success and not force: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
801 | return False |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
802 | __os_.rmdir(name) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
803 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
804 | if not force: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
805 | return False |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
806 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
807 | __os_.remove(name) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
808 | except: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
809 | if not force: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
810 | return False |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
811 | return True |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
812 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
813 | print(remove_file('{0}', {1}, {2})) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
814 | del __os_, remove_file |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
815 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
816 | name, recursive, force |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
817 | ) |
9989 | 818 | out, err = self.executeCommands( |
9844 | 819 | command, mode=self._submitMode, timeout=20000 |
820 | ) | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
821 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
822 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
823 | return ast.literal_eval(out.decode("utf-8")) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
824 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
825 | return False |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
826 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
827 | def mkdir(self, dirname): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
828 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
829 | Public method to create a new directory. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
830 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
831 | @param dirname name of the directory to create |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
832 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
833 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
834 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
835 | if dirname: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
836 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
837 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
838 | __os_.mkdir('{0}') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
839 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
840 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
841 | dirname |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
842 | ) |
9989 | 843 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
844 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
845 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
846 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
847 | def rmdir(self, dirname): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
848 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
849 | Public method to remove a directory. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
850 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
851 | @param dirname name of the directory to be removed |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
852 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
853 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
854 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
855 | if dirname: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
856 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
857 | import os as __os_ |
9766
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
858 | |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
859 | try: |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
860 | __os_.rmdir('{0}') |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
861 | except OSError as exc: |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
862 | if exc.args[0] == 13: |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
863 | raise OSError(13, 'Access denied or directory not empty.') |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
864 | else: |
f0e22f3a5878
Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9765
diff
changeset
|
865 | raise |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
866 | del __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
867 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
868 | dirname |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
869 | ) |
9989 | 870 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
871 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
872 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
873 | |
10515 | 874 | def rename(self, oldname, newname): |
875 | """ | |
876 | Public method to rename a file on the device. | |
877 | ||
878 | @param oldname current name of the file | |
879 | @type str | |
880 | @param newname new name for the file | |
881 | @type str | |
882 | @exception OSError raised to indicate an issue with the device | |
883 | """ | |
884 | if oldname and newname: | |
885 | command = """ | |
886 | import os as __os_ | |
887 | __os_.rename('{0}', '{1}') | |
888 | del __os_ | |
889 | """.format( | |
890 | oldname, newname | |
891 | ) | |
892 | out, err = self.executeCommands(command, mode=self._submitMode) | |
893 | if err: | |
894 | raise OSError(self._shortError(err)) | |
895 | ||
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
896 | def put(self, hostFileName, deviceFileName=None): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
897 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
898 | Public method to copy a local file to the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
899 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
900 | @param hostFileName name of the file to be copied |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
901 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
902 | @param deviceFileName name of the file to copy to |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
903 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
904 | @return flag indicating success |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
905 | @rtype bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
906 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
907 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
908 | if not os.path.isfile(hostFileName): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
909 | raise OSError("No such file: {0}".format(hostFileName)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
910 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
911 | if not deviceFileName: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
912 | deviceFileName = os.path.basename(hostFileName) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
913 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
914 | with open(hostFileName, "rb") as hostFile: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
915 | content = hostFile.read() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
916 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
917 | return self.putData(deviceFileName, content) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
918 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
919 | def putData(self, deviceFileName, content): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
920 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
921 | Public method to write the given data to the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
922 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
923 | @param deviceFileName name of the file to write to |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
924 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
925 | @param content data to write |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
926 | @type bytes |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
927 | @return flag indicating success |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
928 | @rtype bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
929 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
930 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
931 | if not deviceFileName: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
932 | raise OSError("Missing device file name") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
933 | |
10095 | 934 | # convert eol to '\n' |
935 | content = content.replace(b"\r\n", b"\n") | |
936 | content = content.replace(b"\r", b"\n") | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
937 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
938 | commands = [ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
939 | "fd = open('{0}', 'wb')".format(deviceFileName), |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
940 | "f = fd.write", |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
941 | ] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
942 | while content: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
943 | chunk = content[:64] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
944 | commands.append("f(" + repr(chunk) + ")") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
945 | content = content[64:] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
946 | commands.extend( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
947 | [ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
948 | "fd.close()", |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
949 | "del f, fd", |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
950 | ] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
951 | ) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
952 | command = "\n".join(commands) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
953 | |
9989 | 954 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
955 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
956 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
957 | return True |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
958 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
959 | def get(self, deviceFileName, hostFileName=None): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
960 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
961 | Public method to copy a file from the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
962 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
963 | @param deviceFileName name of the file to copy |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
964 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
965 | @param hostFileName name of the file to copy to |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
966 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
967 | @return flag indicating success |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
968 | @rtype bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
969 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
970 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
971 | if not deviceFileName: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
972 | raise OSError("Missing device file name") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
973 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
974 | if not hostFileName: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
975 | hostFileName = deviceFileName |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
976 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
977 | out = self.getData(deviceFileName) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
978 | with open(hostFileName, "wb") as hostFile: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
979 | hostFile.write(out) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
980 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
981 | return True |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
982 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
983 | def getData(self, deviceFileName): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
984 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
985 | Public method to read data from the connected device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
986 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
987 | @param deviceFileName name of the file to read from |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
988 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
989 | @return data read from the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
990 | @rtype bytes |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
991 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
992 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
993 | if not deviceFileName: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
994 | raise OSError("Missing device file name") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
995 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
996 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
997 | def send_data(): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
998 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
999 | from microbit import uart as u |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1000 | except ImportError: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1001 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1002 | from sys import stdout as u |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1003 | except ImportError: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1004 | try: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1005 | from machine import UART |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1006 | u = UART(0, 115200) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1007 | except Exception: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1008 | raise Exception('Could not find UART module in device.') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1009 | f = open('{0}', 'rb') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1010 | r = f.read |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1011 | result = True |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1012 | while result: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1013 | result = r(32) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1014 | if result: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1015 | u.write(result) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1016 | f.close() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1017 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1018 | send_data() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1019 | del send_data |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1020 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1021 | deviceFileName |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1022 | ) |
9989 | 1023 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1024 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1025 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1026 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1027 | # write the received bytes to the local file |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1028 | # convert eol to "\n" |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1029 | out = out.replace(b"\r\n", b"\n") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1030 | out = out.replace(b"\r", b"\n") |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1031 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1032 | return out |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1033 | |
11190 | 1034 | def touch(self, deviceFileName): |
1035 | """ | |
1036 | Public method to touch a file on the connected device. | |
1037 | ||
1038 | @param deviceFileName name of the file to be touched | |
1039 | @type str | |
1040 | @exception OSError raised to indicate an issue with the device | |
1041 | """ | |
1042 | if not deviceFileName: | |
1043 | raise OSError("Missing device file name") | |
1044 | ||
1045 | command = """ | |
1046 | def touch(): | |
1047 | f = open('{0}', 'a') | |
1048 | f.close() | |
1049 | ||
1050 | touch() | |
1051 | del touch | |
1052 | """.format( | |
1053 | deviceFileName | |
1054 | ) | |
1055 | out, err = self.executeCommands(command, mode=self._submitMode) | |
1056 | if err: | |
1057 | raise OSError(self._shortError(err)) | |
1058 | ||
1059 | def __supportsHash(self, algorithm): | |
1060 | """ | |
1061 | Private method to sheck, if the connected device supports hashing with | |
1062 | the hashlib module and the given algorithm. | |
1063 | ||
1064 | @param algorithm hashing algorithm to be used | |
1065 | @type str | |
1066 | @return flag indicating hashing support | |
1067 | @rtype bool | |
1068 | """ | |
1069 | command = """ | |
1070 | def supportsHash(): | |
1071 | try: | |
1072 | import hashlib | |
1073 | except ImportError: | |
1074 | return 'False - hashlib not available' | |
1075 | try: | |
1076 | h = hashlib.{0}() | |
1077 | except AttributeError: | |
1078 | return 'False - hashlib.{0} not supported' | |
1079 | ||
1080 | return 'True' | |
1081 | ||
1082 | print(supportsHash()) | |
1083 | del supportsHash | |
1084 | """.format( | |
1085 | algorithm | |
1086 | ) | |
1087 | ||
1088 | out, err = self.executeCommands(command, mode=self._submitMode) | |
1089 | if err: | |
1090 | return False | |
1091 | ||
1092 | return out.decode("utf-8").strip() == "True" | |
1093 | ||
1094 | def hash(self, deviceFileName, algorithm="sha256", chunkSize=256): | |
1095 | """ | |
1096 | Public method to calculate the hash value of a file on the connected device. | |
1097 | ||
1098 | @param deviceFileName name of the file to be touched | |
1099 | @type str | |
1100 | @param algorithm hashing algorithm to be used (defaults to "sha256") | |
1101 | @type str (optional) | |
1102 | @param chunkSize size of data chunks to be sent to the algorithm | |
1103 | (defaults to 256) | |
1104 | @type int (optional) | |
1105 | @return calculate hash digest | |
1106 | @rtype bytes | |
1107 | @exception OSError raised to indicate an issue with the device | |
1108 | """ | |
1109 | if not deviceFileName: | |
1110 | raise OSError("Missing device file name") | |
1111 | ||
1112 | command = """ | |
1113 | def hash(): | |
1114 | import hashlib | |
1115 | ||
1116 | h = hashlib.{1}() | |
1117 | buf = memoryview(bytearray({2})) | |
1118 | with open('{0}', 'rb') as f: | |
1119 | while True: | |
1120 | n = f.readinto(buf) | |
1121 | if n == 0: | |
1122 | break | |
1123 | h.update(buf if n == {2} else buf[:n]) | |
1124 | ||
1125 | return h.digest() | |
1126 | ||
1127 | print(hash()) | |
1128 | del hash | |
1129 | """.format( | |
1130 | deviceFileName, algorithm, chunkSize | |
1131 | ) | |
1132 | ||
1133 | if self.__supportsHash(algorithm=algorithm): | |
1134 | out, err = self.executeCommands(command, mode=self._submitMode) | |
1135 | if err: | |
1136 | raise OSError(self._shortError(err)) | |
1137 | digest = ast.literal_eval(out.decode("utf-8")) | |
1138 | else: | |
1139 | # The board does not support hash calculation. Get the data and do | |
1140 | # the calculation locally. | |
1141 | data = self.getData(deviceFileName=deviceFileName) | |
1142 | digest = getattr(hashlib, algorithm)(data).digest() | |
1143 | ||
1144 | return digest | |
1145 | ||
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1146 | def fileSystemInfo(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1147 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1148 | Public method to obtain information about the currently mounted file |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1149 | systems. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1150 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1151 | @return tuple of tuples containing the file system name, the total |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1152 | size, the used size and the free size |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1153 | @rtype tuple of tuples of (str, int, int, int) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1154 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1155 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1156 | command = """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1157 | import os as __os_ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1158 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1159 | def fsinfo(): |
9928 | 1160 | infodict = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1161 | info = __os_.statvfs('/') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1162 | if info[0] == 0: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1163 | fsnames = __os_.listdir('/') |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1164 | for fs in fsnames: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1165 | fs = '/' + fs |
9928 | 1166 | infodict[fs] = __os_.statvfs(fs) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1167 | else: |
9928 | 1168 | infodict['/'] = info |
1169 | fsnames = __os_.listdir('/') | |
1170 | for fs in fsnames: | |
1171 | fs = '/' + fs | |
1172 | info = __os_.statvfs(fs) | |
1173 | if info not in infodict.values(): | |
1174 | infodict[fs] = info | |
1175 | return infodict | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1176 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1177 | print(fsinfo()) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1178 | del __os_, fsinfo |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1179 | """ |
9989 | 1180 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1181 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1182 | raise OSError(self._shortError(err)) |
9928 | 1183 | infodict = ast.literal_eval(out.decode("utf-8")) |
1184 | if infodict is None: | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1185 | return None |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1186 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1187 | filesystemInfos = [] |
9928 | 1188 | for fs, info in infodict.items(): |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1189 | totalSize = info[2] * info[1] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1190 | freeSize = info[4] * info[1] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1191 | usedSize = totalSize - freeSize |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1192 | filesystemInfos.append((fs, totalSize, usedSize, freeSize)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1193 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1194 | return tuple(filesystemInfos) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1195 | |
9979 | 1196 | def ensurePath(self, target): |
1197 | """ | |
1198 | Public method to ensure, that the given target path exists. | |
1199 | ||
1200 | @param target target directory | |
1201 | @type str | |
1202 | """ | |
1203 | pathParts = target.split("/") | |
1204 | ||
1205 | # handle targets starting with "/" | |
1206 | if not pathParts[0]: | |
1207 | pathParts.pop(0) | |
1208 | pathParts[0] = "/" + pathParts[0] | |
1209 | ||
1210 | directory = "" | |
1211 | for index in range(len(pathParts)): | |
1212 | directory += pathParts[index] | |
1213 | if not self.exists(directory): | |
1214 | self.mkdir(directory) | |
1215 | directory += "/" | |
1216 | ||
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1217 | ################################################################## |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1218 | ## board information related methods below |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1219 | ################################################################## |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1220 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1221 | def __getDeviceData(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1222 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1223 | Private method to get some essential data for the connected board. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1224 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1225 | @return dictionary containing the determined data |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1226 | @rtype dict |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1227 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1228 | """ |
11224
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1229 | commands = [ # needs to be split for boards with low memory |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1230 | """def get_device_data(): |
9844 | 1231 | res = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1232 | |
9906
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1233 | try: |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1234 | import os |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1235 | uname = os.uname() |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1236 | res['sysname'] = uname.sysname |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1237 | res['nodename'] = uname.nodename |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1238 | res['release'] = uname.release |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1239 | res['version'] = uname.version |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1240 | res['machine'] = uname.machine |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1241 | except AttributeError: |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1242 | import sys |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1243 | res['sysname'] = sys.platform |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1244 | res['nodename'] = sys.platform |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1245 | res['release'] = '.'.join(str(v) for v in sys.implementation.version) |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1246 | res['version'] = sys.version.split(';', 1)[-1].strip() |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1247 | res['machine'] = sys.implementation._machine |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1248 | return res |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1249 | |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1250 | print(get_device_data()) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1251 | del get_device_data |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1252 | """, |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1253 | """def get_device_data(): |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1254 | res = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1255 | |
9844 | 1256 | import sys |
1257 | res['py_platform'] = sys.platform | |
1258 | res['py_version'] = sys.version | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1259 | |
9844 | 1260 | try: |
1261 | res['mpy_name'] = sys.implementation.name | |
1262 | except AttributeError: | |
1263 | res['mpy_name'] = 'unknown' | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1264 | |
9844 | 1265 | try: |
1266 | res['mpy_version'] = '.'.join((str(i) for i in sys.implementation.version)) | |
1267 | except AttributeError: | |
1268 | res['mpy_version'] = 'unknown' | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1269 | |
9979 | 1270 | if hasattr(sys.implementation, '_mpy'): |
1271 | res['mpy_file_version'] = sys.implementation._mpy & 0xff | |
1272 | elif hasattr(sys.implementation, 'mpy'): | |
1273 | res['mpy_file_version'] = sys.implementation.mpy & 0xff | |
1274 | else: | |
1275 | res['mpy_file_version'] = 0 | |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1276 | return res |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1277 | |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1278 | print(get_device_data()) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1279 | del get_device_data |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1280 | """, |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1281 | """def get_device_data(): |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1282 | res = {} |
9979 | 1283 | |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1284 | try: |
9844 | 1285 | import pimoroni |
1286 | res['mpy_variant'] = 'Pimoroni Pico' | |
1287 | try: | |
1288 | import version | |
1289 | res['mpy_variant_info'] = version.BUILD | |
11220
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1290 | vbl = version.BUILD.split('-') |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1291 | for v in vbl: |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1292 | if v.startswith('v'): |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1293 | res['mpy_variant_version'] = v[1:] |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1294 | break |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1295 | else: |
11219
72ff8c49919e
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11190
diff
changeset
|
1296 | res['mpy_variant_version'] = '' |
9844 | 1297 | except ImportError: |
1298 | res['mpy_variant_info'] = '' | |
1299 | res['mpy_variant_version'] = '' | |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1300 | except ImportError: |
9844 | 1301 | res['mpy_variant'] = '' |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1302 | res['mpy_variant_info'] = '' |
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1303 | res['mpy_variant_version'] = '' |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1304 | return res |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1305 | |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1306 | print(get_device_data()) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1307 | del get_device_data |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1308 | """, |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1309 | """def get_device_data(): |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1310 | res = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1311 | |
9844 | 1312 | res['mip'] = False |
1313 | res['upip'] = False | |
1314 | try: | |
1315 | import mip | |
1316 | res['mip'] = True | |
1317 | except ImportError: | |
1318 | try: | |
1319 | import upip | |
1320 | res['upip'] = True | |
1321 | except ImportError: | |
1322 | pass | |
1323 | ||
10019
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1324 | try: |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1325 | import time |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1326 | res['epoch_year'] = time.gmtime(0)[0] |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1327 | except AttributeError: |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1328 | res['epoch_year'] = 2000 |
e56089d00750
Fixed a few issue in the MicroPython support related to behavior of devices and change caused by MicroPython release 1.20.0 on ESP32 devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9989
diff
changeset
|
1329 | |
9844 | 1330 | return res |
1331 | ||
1332 | print(get_device_data()) | |
1333 | del get_device_data | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1334 | """, |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1335 | ] |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1336 | res = {} |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1337 | for command in commands: |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1338 | out, err = self.executeCommands(command, mode=self._submitMode) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1339 | if err: |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1340 | raise OSError(self._shortError(err)) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1341 | res.update(ast.literal_eval(out.decode("utf-8"))) |
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1342 | return res |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1343 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1344 | def _boardInformationCommands(self): |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1345 | """ |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1346 | Protected method defining the list of commands to be execute on the board |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1347 | for determining information about the board. |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1348 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1349 | @return list of command strings to be executed |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1350 | @rtype list of str |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1351 | """ |
11224
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1352 | return [ # needs to be split for boards with low memory |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1353 | """def get_board_info(): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1354 | res = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1355 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1356 | import gc |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1357 | gc.enable() |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1358 | gc.collect() |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1359 | mem_alloc = gc.mem_alloc() |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1360 | mem_free = gc.mem_free() |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1361 | mem_total = mem_alloc + mem_free |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1362 | res['mem_total_kb'] = mem_total / 1024.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1363 | res['mem_used_kb'] = mem_alloc / 1024.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1364 | res['mem_used_pc'] = mem_alloc / mem_total * 100.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1365 | res['mem_free_kb'] = mem_free / 1024.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1366 | res['mem_free_pc'] = mem_free / mem_total * 100.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1367 | del gc, mem_alloc, mem_free, mem_total |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1368 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1369 | return res |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1370 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1371 | print(get_board_info()) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1372 | del get_board_info |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1373 | """, |
10173 | 1374 | """def get_board_info(): |
9844 | 1375 | res = {} |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1376 | |
9906
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1377 | try: |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1378 | import os |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1379 | uname = os.uname() |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1380 | res['sysname'] = uname.sysname |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1381 | res['nodename'] = uname.nodename |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1382 | res['release'] = uname.release |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1383 | res['version'] = uname.version |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1384 | res['machine'] = uname.machine |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1385 | except AttributeError: |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1386 | import sys |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1387 | res['sysname'] = sys.platform |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1388 | res['nodename'] = sys.platform |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1389 | res['release'] = '.'.join(str(v) for v in sys.implementation.version) |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1390 | res['version'] = sys.version.split(';', 1)[-1].strip() |
39daf45010c8
Enhanced the support for Generic MicroPython devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9889
diff
changeset
|
1391 | res['machine'] = sys.implementation._machine |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1392 | |
10173 | 1393 | return res |
1394 | ||
1395 | print(get_board_info()) | |
1396 | del get_board_info | |
1397 | """, | |
1398 | """def get_board_info(): | |
1399 | res = {} | |
1400 | ||
9844 | 1401 | import sys |
1402 | res['py_platform'] = sys.platform | |
1403 | res['py_version'] = sys.version | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1404 | |
9844 | 1405 | try: |
1406 | res['mpy_name'] = sys.implementation.name | |
1407 | except AttributeError: | |
1408 | res['mpy_name'] = 'unknown' | |
1409 | try: | |
1410 | res['mpy_version'] = '.'.join((str(i) for i in sys.implementation.version)) | |
1411 | except AttributeError: | |
1412 | res['mpy_version'] = 'unknown' | |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1413 | try: |
9844 | 1414 | import pimoroni |
1415 | res['mpy_variant'] = 'Pimoroni Pico' | |
1416 | try: | |
1417 | import version | |
1418 | res['mpy_variant_info'] = version.BUILD | |
11220
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1419 | vbl = version.BUILD.split('-') |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1420 | for v in vbl: |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1421 | if v.startswith('v'): |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1422 | res['mpy_variant_version'] = v[1:] |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1423 | break |
044ea8893b81
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11219
diff
changeset
|
1424 | else: |
11219
72ff8c49919e
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11190
diff
changeset
|
1425 | res['mpy_variant_version'] = '' |
9844 | 1426 | except ImportError: |
1427 | res['mpy_variant_info'] = '' | |
1428 | res['mpy_variant_version'] = '' | |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1429 | except ImportError: |
9844 | 1430 | res['mpy_variant'] = '' |
9772
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1431 | res['mpy_variant_info'] = '' |
06ef28082c4d
Changed the RP2040 related code of the MicroPython package to show the version info for a MicroPython variant (like Pimoroni Pico) if such is available (e.g. Pimoroni Pico 1.19.14 or newer).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9766
diff
changeset
|
1432 | res['mpy_variant_version'] = '' |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1433 | |
10173 | 1434 | return res |
1435 | ||
1436 | print(get_board_info()) | |
1437 | del get_board_info | |
1438 | """, | |
1439 | """def get_board_info(): | |
1440 | res = {} | |
1441 | ||
9844 | 1442 | try: |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1443 | import os |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1444 | stat_ = os.statvfs('/flash') |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1445 | res['flash_info_available'] = True |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1446 | res['flash_total_kb'] = stat_[2] * stat_[0] / 1024.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1447 | res['flash_free_kb'] = stat_[3] * stat_[0] / 1024.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1448 | res['flash_used_kb'] = res['flash_total_kb'] - res['flash_free_kb'] |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1449 | res['flash_free_pc'] = res['flash_free_kb'] / res['flash_total_kb'] * 100.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1450 | res['flash_used_pc'] = res['flash_used_kb'] / res['flash_total_kb'] * 100.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1451 | except (AttributeError, OSError): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1452 | res['flash_info_available'] = False |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1453 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1454 | return res |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1455 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1456 | print(get_board_info()) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1457 | del get_board_info |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1458 | """, |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1459 | """def get_board_info(): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1460 | res = {} |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1461 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1462 | try: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1463 | import machine as mc |
11224
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1464 | try: |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1465 | if isinstance(mc.freq(), tuple): |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1466 | res['mc_frequency_mhz'] = mc.freq()[0] / 1000000.0 |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1467 | else: |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1468 | res['mc_frequency_mhz'] = mc.freq() / 1000000.0 |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1469 | except NotImplementedError: |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1470 | res['mc_frequency_mhz'] = None |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1471 | res['mc_id'] = mc.unique_id() |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1472 | except ImportError: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1473 | try: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1474 | import microcontroller as mc |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1475 | res['mc_frequency_mhz'] = mc.cpu.frequency / 1000000.0 |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1476 | res['mc_temp_c'] = mc.cpu.temperature |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1477 | res['mc_id'] = mc.cpu.uid |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1478 | except ImportError: |
11224
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1479 | res['mc_frequency_mhz'] = None |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1480 | res['mc_temp_c'] = None |
65b341cfab55
MicroPython Interface
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11220
diff
changeset
|
1481 | res['mc_id'] = '' |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1482 | if 'mc_id' in res: |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1483 | res['mc_id'] = ':'.join('{0:02X}'.format(x) for x in res['mc_id']) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1484 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1485 | return res |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1486 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1487 | print(get_board_info()) |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1488 | del get_board_info |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1489 | """, |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1490 | """def get_board_info(): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1491 | res = {} |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1492 | |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1493 | try: |
9844 | 1494 | import ulab |
1495 | res['ulab'] = ulab.__version__ | |
1496 | except ImportError: | |
1497 | res['ulab'] = None | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1498 | |
9844 | 1499 | return res |
1500 | ||
1501 | print(get_board_info()) | |
1502 | del get_board_info | |
10173 | 1503 | """, |
1504 | ] | |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1505 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1506 | def getBoardInformation(self): |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1507 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1508 | Public method to get some information data of the connected board. |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1509 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1510 | @return dictionary containing the determined data |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1511 | @rtype dict |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1512 | @exception OSError raised to indicate an issue with the device |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1513 | """ |
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1514 | res = {} |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1515 | |
11186
c2d18aefef6b
Corrected some issues in the 'micro:bit' device class and enhanced the MPy file manager.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11183
diff
changeset
|
1516 | for command in self._boardInformationCommands(): |
10173 | 1517 | out, err = self.executeCommands(command, mode=self._submitMode) |
1518 | if err: | |
1519 | raise OSError(self._shortError(err)) | |
1520 | res.update(ast.literal_eval(out.decode("utf-8"))) | |
11177
f511038a0061
Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11167
diff
changeset
|
1521 | |
10173 | 1522 | return res |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1523 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1524 | def getModules(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1525 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1526 | Public method to show a list of modules built into the firmware. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1527 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1528 | @return list of builtin modules |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1529 | @rtype list of str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1530 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1531 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1532 | commands = ["help('modules')"] |
9989 | 1533 | out, err = self.executeCommands(commands, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1534 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1535 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1536 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1537 | modules = [] |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1538 | for line in out.decode("utf-8").splitlines()[:-1]: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1539 | modules.extend(line.split()) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1540 | return modules |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1541 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1542 | ################################################################## |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1543 | ## time related methods below |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1544 | ################################################################## |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1545 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1546 | def getTime(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1547 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1548 | Public method to get the current time of the device. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1549 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1550 | @return time of the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1551 | @rtype str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1552 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1553 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1554 | command = """ |
9844 | 1555 | def get_time(): |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1556 | try: |
9844 | 1557 | import rtc |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1558 | print( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1559 | '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}' |
9844 | 1560 | .format(*rtc.RTC().datetime[:6]) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1561 | ) |
9844 | 1562 | except: |
1563 | import time | |
1564 | try: | |
1565 | print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())) | |
1566 | except AttributeError: | |
1567 | tm = time.localtime() | |
1568 | print( | |
1569 | '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}' | |
1570 | .format(tm[0], tm[1], tm[2], tm[3], tm[4], tm[5]) | |
1571 | ) | |
1572 | ||
1573 | get_time() | |
1574 | del get_time | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1575 | """ |
9989 | 1576 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1577 | if err: |
11167 | 1578 | if b"NotImplementedError" in err or b"AttributeError" in err: |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1579 | return "<unsupported> <unsupported>" |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1580 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1581 | return out.decode("utf-8").strip() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1582 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1583 | def _getSetTimeCode(self): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1584 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1585 | Protected method to get the device code to set the time. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1586 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1587 | Note: This method must be implemented in the various device specific |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1588 | subclasses. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1589 | |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1590 | @return code to be executed on the connected device to set the time |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1591 | @rtype str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1592 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1593 | # rtc_time[0] - year 4 digit |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1594 | # rtc_time[1] - month 1..12 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1595 | # rtc_time[2] - day 1..31 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1596 | # rtc_time[3] - weekday 1..7 1=Monday |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1597 | # rtc_time[4] - hour 0..23 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1598 | # rtc_time[5] - minute 0..59 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1599 | # rtc_time[6] - second 0..59 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1600 | # rtc_time[7] - yearday 1..366 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1601 | # rtc_time[8] - isdst 0, 1, or -1 |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1602 | if self.hasCircuitPython(): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1603 | # CircuitPython is handled here in order to not duplicate the code in all |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1604 | # specific boards able to be flashed with CircuitPython or MicroPython |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1605 | return """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1606 | def set_time(rtc_time): |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1607 | import rtc |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1608 | import time |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1609 | clock = rtc.RTC() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1610 | clock_time = rtc_time[:3] + rtc_time[4:7] + (rtc_time[3], rtc_time[7], rtc_time[8]) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1611 | clock.datetime = time.struct_time(clock_time) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1612 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1613 | else: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1614 | return "" |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1615 | |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1616 | def syncTime(self, _deviceType, hasCPy=False): # noqa: U-100 |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1617 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1618 | Public method to set the time of the connected device to the local |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1619 | computer's time. |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1620 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1621 | @param _deviceType type of board to sync time to (unused) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1622 | @type str |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1623 | @param hasCPy flag indicating that the device has CircuitPython loadede |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1624 | (defaults to False) (unused) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1625 | @type bool |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1626 | @exception OSError raised to indicate an issue with the device |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1627 | """ |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1628 | setTimeCode = self._getSetTimeCode() |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1629 | if setTimeCode: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1630 | now = time.localtime(time.time()) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1631 | command = """{0} |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1632 | set_time({1}) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1633 | del set_time |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1634 | """.format( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1635 | setTimeCode, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1636 | ( |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1637 | now.tm_year, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1638 | now.tm_mon, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1639 | now.tm_mday, |
10083
62019277dd0a
Fixed an issue in the MicroPython syncTime() method.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10069
diff
changeset
|
1640 | now.tm_wday, |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1641 | now.tm_hour, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1642 | now.tm_min, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1643 | now.tm_sec, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1644 | now.tm_yday, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1645 | now.tm_isdst, |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1646 | ), |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1647 | ) |
9989 | 1648 | out, err = self.executeCommands(command, mode=self._submitMode) |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1649 | if err: |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1650 | raise OSError(self._shortError(err)) |
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
1651 | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1652 | ################################################################## |
9844 | 1653 | ## Methods below implement package management related methods |
1654 | ################################################################## | |
1655 | ||
1656 | def upipInstall(self, packages): | |
1657 | """ | |
1658 | Public method to install packages using 'upip'. | |
1659 | ||
9847
d8c7ded575cb
Corrected some code style and formatting issues and regenerated the source documentation accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9844
diff
changeset
|
1660 | @param packages list of package names |
d8c7ded575cb
Corrected some code style and formatting issues and regenerated the source documentation accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9844
diff
changeset
|
1661 | @type list of str |
9844 | 1662 | @return tuple containing the command output and errors |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10329
diff
changeset
|
1663 | @rtype tuple of (str, str) |
9844 | 1664 | """ |
1665 | command = """ | |
1666 | def upip_install(): | |
1667 | import upip | |
1668 | upip.install({0}) | |
1669 | ||
1670 | upip_install() | |
1671 | del upip_install | |
9853
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1672 | """.format( |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1673 | repr(packages) |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1674 | ) |
9989 | 1675 | return self.executeCommands(command, mode=self._submitMode, timeout=60000) |
9844 | 1676 | |
9979 | 1677 | def mipInstall(self, package, index=None, target=None, version=None, mpy=True): |
9844 | 1678 | """ |
9847
d8c7ded575cb
Corrected some code style and formatting issues and regenerated the source documentation accordingly.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9844
diff
changeset
|
1679 | Public method to install packages using 'mip'. |
9844 | 1680 | |
1681 | @param package package name | |
1682 | @type str | |
9979 | 1683 | @param index URL of the package index to be used (defaults to None) |
1684 | @type str (optional) | |
1685 | @param target target directory on the device (defaults to None) | |
1686 | @type str (optional) | |
1687 | @param version package version (defaults to None) | |
1688 | @type str (optional) | |
1689 | @param mpy flag indicating to install as '.mpy' file (defaults to True) | |
1690 | @type bool (optional) | |
9844 | 1691 | @return tuple containing the command output and errors |
10428
a071d4065202
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10329
diff
changeset
|
1692 | @rtype tuple of (str, str) |
9844 | 1693 | """ |
1694 | parameterStr = repr(package) | |
9979 | 1695 | if index: |
1696 | parameterStr += ", index={0}".format(repr(index)) | |
1697 | if target: | |
1698 | parameterStr += ", target={0}".format(repr(target)) | |
9844 | 1699 | if version: |
1700 | parameterStr += ", version={0}".format(repr(version)) | |
1701 | if not mpy: | |
1702 | parameterStr += ", mpy=False" | |
1703 | ||
1704 | command = """ | |
1705 | def mip_install(): | |
1706 | import mip | |
1707 | mip.install({0}) | |
1708 | ||
1709 | mip_install() | |
1710 | del mip_install | |
9853
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1711 | """.format( |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1712 | parameterStr |
080e060a0383
Added the capability to save from an editor to a connected MicroPython device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9852
diff
changeset
|
1713 | ) |
9989 | 1714 | return self.executeCommands(command, mode=self._submitMode, timeout=60000) |
9844 | 1715 | |
9979 | 1716 | def getLibPaths(self): |
1717 | """ | |
1718 | Public method to get the list of library paths contained in 'sys.path'. | |
1719 | ||
1720 | @return list of library paths | |
1721 | @rtype list of str | |
1722 | @exception OSError raised to indicate an issue with the device | |
1723 | """ | |
1724 | command = """ | |
1725 | def lib_paths(): | |
1726 | import sys | |
1727 | print([p for p in sys.path if p.endswith('/lib')]) | |
1728 | ||
1729 | lib_paths() | |
1730 | del lib_paths | |
1731 | """ | |
9989 | 1732 | out, err = self.executeCommands(command, mode=self._submitMode) |
9979 | 1733 | if err: |
1734 | raise OSError(self._shortError(err)) | |
1735 | ||
1736 | return ast.literal_eval(out.decode("utf-8")) | |
1737 | ||
9844 | 1738 | ################################################################## |
10328 | 1739 | ## Methods below implement general network related methods |
10144 | 1740 | ################################################################## |
1741 | ||
1742 | def isNetworkConnected(self): | |
1743 | """ | |
1744 | Public method to check, if the network interface (WiFi or Ethernet) is | |
1745 | connected. | |
1746 | ||
1747 | @return flag indicating the network connection state | |
1748 | @rtype bool | |
1749 | """ | |
10329 | 1750 | if self._deviceData: |
1751 | # Ask the device if that is true. | |
1752 | if self._deviceData["ethernet"]: | |
1753 | # It is an ethernet capable device. | |
1754 | return self.isLanConnected() | |
1755 | elif self._deviceData["wifi"]: | |
1756 | # It is a WiFi capable device. | |
1757 | return self.isWifiClientConnected() | |
1758 | ||
1759 | return False | |
10144 | 1760 | |
1761 | ################################################################## | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1762 | ## Methods below implement WiFi related methods |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1763 | ################################################################## |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1764 | |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1765 | def hasWifi(self): |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1766 | """ |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1767 | Public method to check the availability of WiFi. |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1768 | |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1769 | @return tuple containing a flag indicating the availability of WiFi |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1770 | and the WiFi type (picow or pimoroni) |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1771 | @rtype tuple of (bool, str) |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1772 | """ |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1773 | return False, "" |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1774 | |
10153 | 1775 | def hasWifiCountry(self): |
1776 | """ | |
1777 | Public method to check, if the device (potentially) has support to set the | |
1778 | WiFi country. | |
1779 | ||
1780 | @return flag indicating the support of WiFi country | |
1781 | @rtype bool | |
1782 | """ | |
1783 | return False | |
1784 | ||
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
|
1785 | def addDeviceWifiEntries(self, menu): |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1786 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1787 | Public method to add device specific entries to the given menu. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1788 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1789 | @param menu reference to the context menu |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1790 | @type QMenu |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1791 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1792 | pass |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1793 | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1794 | def getWifiData(self): |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1795 | """ |
9789
d8e0ab86ddca
Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9787
diff
changeset
|
1796 | Public method to get data related to the current WiFi status. |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1797 | |
9798 | 1798 | @return tuple of three dictionaries containing the WiFi status data |
1799 | for the WiFi client, access point and overall data | |
1800 | @rtype tuple of (dict, dict, dict) | |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1801 | """ |
9798 | 1802 | return {}, {}, {} |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1803 | |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1804 | def connectWifi(self, ssid, password, hostname): # noqa: U-100 |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1805 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1806 | Public method to connect a device to a WiFi network. |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1807 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1808 | @param ssid name (SSID) of the WiFi network (unused) |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1809 | @type str |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1810 | @param password password needed to connect (unused) |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1811 | @type str |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1812 | @param hostname host name of the device (unused) |
10153 | 1813 | @type str |
9776
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1814 | @return tuple containing the connection status and an error string |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1815 | @rtype tuple of (bool, str) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1816 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1817 | return False, self.tr("Operation not supported.") |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1818 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1819 | def disconnectWifi(self): |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1820 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1821 | Public method to disconnect a device from the WiFi network. |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1822 | |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1823 | @return tuple containing a flag indicating success and an error string |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1824 | @rtype tuple of (bool, str) |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1825 | """ |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1826 | return True, "" |
210bf87ae5c7
Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9775
diff
changeset
|
1827 | |
10144 | 1828 | def isWifiClientConnected(self): |
1829 | """ | |
1830 | Public method to check the WiFi connection status as client. | |
1831 | ||
1832 | @return flag indicating the WiFi connection status | |
1833 | @rtype bool | |
1834 | """ | |
1835 | return False | |
1836 | ||
1837 | def isWifiApConnected(self): | |
1838 | """ | |
1839 | Public method to check the WiFi connection status as access point. | |
1840 | ||
1841 | @return flag indicating the WiFi connection status | |
1842 | @rtype bool | |
1843 | """ | |
1844 | return False | |
1845 | ||
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1846 | def writeCredentials(self, ssid, password, hostname, country): # noqa: U-100 |
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
|
1847 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1848 | Public method to write the given credentials to the connected device and modify |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1849 | the start script to connect automatically. |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1850 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1851 | @param ssid SSID of the network to connect to (unused) |
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
|
1852 | @type str |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1853 | @param password password needed to authenticate (unused) |
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
|
1854 | @type str |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1855 | @param hostname host name of the device (unused) |
10153 | 1856 | @type str |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1857 | @param country WiFi country code (unused) |
10153 | 1858 | @type 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:
9782
diff
changeset
|
1859 | @return tuple containing a flag indicating success and an error message |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1860 | @rtype tuple of (bool, str) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1861 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1862 | return 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:
9782
diff
changeset
|
1863 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1864 | def removeCredentials(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:
9782
diff
changeset
|
1865 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1866 | Public method to remove the saved credentials from the connected 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
|
1867 | |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1868 | @return tuple containing a flag indicating success and an error message |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1869 | @rtype tuple of (bool, str) |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1870 | """ |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1871 | return 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:
9782
diff
changeset
|
1872 | |
9781
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1873 | def checkInternet(self): |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1874 | """ |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1875 | Public method to check, if the internet can be reached. |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1876 | |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1877 | @return tuple containing a flag indicating reachability and an error string |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1878 | @rtype tuple of (bool, str) |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1879 | """ |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1880 | return False, "" |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1881 | |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1882 | def scanNetworks(self): |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1883 | """ |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1884 | Public method to scan for available WiFi networks. |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1885 | |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1886 | @return tuple containing the list of available networks as a tuple of 'Name', |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1887 | 'MAC-Address', 'channel', 'RSSI' and 'security' and an error string |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1888 | @rtype tuple of (list of tuple of (str, str, int, int, str), str) |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1889 | """ |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1890 | return [], "" |
3112f77f722b
Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9779
diff
changeset
|
1891 | |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1892 | def deactivateInterface(self, interface): # noqa: U-100 |
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
|
1893 | """ |
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
|
1894 | Public method to deactivate a given WiFi interface of the connected device. |
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
|
1895 | |
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
|
1896 | @param interface designation of the interface to be deactivated (one of 'AP' |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1897 | or 'STA') (unused) |
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
|
1898 | @type str |
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
|
1899 | @return tuple containg a flag indicating success and an error message |
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
|
1900 | @rtype tuple of (bool, str) |
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
|
1901 | """ |
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
|
1902 | return True, "" |
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
|
1903 | |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10034
diff
changeset
|
1904 | def startAccessPoint( |
10153 | 1905 | self, |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1906 | ssid, # noqa: U-100 |
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1907 | security=None, # noqa: U-100 |
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1908 | password=None, # noqa: U-100 |
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1909 | hostname=None, # noqa: U-100 |
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1910 | ifconfig=None, # noqa: U-100 |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10034
diff
changeset
|
1911 | ): |
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
|
1912 | """ |
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
|
1913 | Public method to start the access point 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
|
1914 | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1915 | @param ssid SSID of the access point (unused) |
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
|
1916 | @type str |
11236 | 1917 | @param security security mode (defaults to None) (unused) |
1918 | @type str (optional) | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1919 | @param password password (defaults to None) (unused) |
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
|
1920 | @type str (optional) |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1921 | @param hostname host name of the device (defaults to None) (unused) |
10153 | 1922 | @type str (optional) |
9797 | 1923 | @param ifconfig IPv4 configuration for the access point if not default |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1924 | (IPv4 address, netmask, gateway address, DNS server address) (unused) |
9797 | 1925 | @type tuple of (str, str, str, str) |
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
|
1926 | @return tuple containing a flag indicating success and an error message |
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
|
1927 | @rtype tuple of (bool, str) |
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
|
1928 | """ |
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
|
1929 | return False, "" |
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
|
1930 | |
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
|
1931 | def stopAccessPoint(self): |
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
|
1932 | """ |
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
|
1933 | Public method to stop the access point 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
|
1934 | |
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
|
1935 | @return tuple containg a flag indicating success and an error message |
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
|
1936 | @rtype tuple of (bool, str) |
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
|
1937 | """ |
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
|
1938 | return True, "" |
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
|
1939 | |
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
|
1940 | def getConnectedClients(self): |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1941 | """ |
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
|
1942 | Public method to get a list of connected clients. |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1943 | |
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
|
1944 | @return a tuple containing a list of tuples containing the client MAC-Address |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1945 | and the RSSI (if supported and available) and an error message |
163511257f24
Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9782
diff
changeset
|
1946 | @rtype tuple of ([(bytes, int)], str) |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1947 | """ |
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
|
1948 | return [], "" |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1949 | |
11236 | 1950 | def getSecurityModes(self): |
1951 | """ | |
1952 | Public method to get a list of security modes supported by the device. | |
1953 | ||
1954 | @return list of supported security modes | |
1955 | @rtype list of str | |
1956 | """ | |
1957 | command = """ | |
1958 | def getSecurityModes(): | |
1959 | import network | |
1960 | modes = [s for s in dir(network.WLAN) if s.startswith('SEC_')] | |
1961 | return modes | |
1962 | ||
1963 | print(getSecurityModes()) | |
1964 | del getSecurityModes | |
1965 | """ | |
1966 | out, err = self.executeCommands(command, mode=self._submitMode) | |
1967 | if err: | |
1968 | return [] | |
1969 | ||
1970 | return ast.literal_eval(out.decode("utf-8")) | |
1971 | ||
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
1972 | def enableWebrepl(self, password): # noqa: U-100 |
10022 | 1973 | """ |
1974 | Public method to write the given WebREPL password to the connected device and | |
1975 | modify the start script to start the WebREPL server. | |
1976 | ||
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
1977 | @param password password needed to authenticate (unused) |
10022 | 1978 | @type str |
1979 | @return tuple containing a flag indicating success and an error message | |
1980 | @rtype tuple of (bool, str) | |
1981 | """ | |
1982 | return False, "" | |
1983 | ||
1984 | def disableWebrepl(self): | |
1985 | """ | |
11236 | 1986 | Public method to modify the start script to not start the WebREPL server. |
10022 | 1987 | |
1988 | @return tuple containing a flag indicating success and an error message | |
1989 | @rtype tuple of (bool, str) | |
1990 | """ | |
1991 | return False, "" | |
1992 | ||
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1993 | ################################################################## |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1994 | ## Methods below implement Ethernet related methods |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1995 | ################################################################## |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1996 | |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1997 | def hasEthernet(self): |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1998 | """ |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
1999 | Public method to check the availability of Ethernet. |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2000 | |
9880
f425c58cf8e9
Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
2001 | @return tuple containing a flag indicating the availability of Ethernet |
f425c58cf8e9
Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
2002 | and the Ethernet type |
f425c58cf8e9
Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
2003 | @rtype tuple of (bool, str) |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2004 | """ |
9880
f425c58cf8e9
Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9878
diff
changeset
|
2005 | return False, "" |
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2006 | |
9878 | 2007 | def addDeviceEthernetEntries(self, menu): |
2008 | """ | |
2009 | Public method to add device specific entries to the given menu. | |
2010 | ||
2011 | @param menu reference to the context menu | |
2012 | @type QMenu | |
2013 | """ | |
2014 | pass | |
2015 | ||
2016 | def getEthernetStatus(self): | |
2017 | """ | |
2018 | Public method to get Ethernet status data of the connected board. | |
2019 | ||
2020 | @return list of tuples containing the translated status data label and | |
2021 | the associated value | |
2022 | @rtype list of tuples of (str, str) | |
2023 | """ | |
2024 | return [] | |
2025 | ||
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
2026 | def connectToLan(self, config, hostname): # noqa: U-100 |
9878 | 2027 | """ |
2028 | Public method to connect the connected device to the LAN. | |
2029 | ||
2030 | @param config configuration for the connection (either the string 'dhcp' | |
2031 | for a dynamic address or a tuple of four strings with the IPv4 parameters. | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2032 | (unused) |
9878 | 2033 | @type str or tuple of (str, str, str, str) |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2034 | @param hostname host name of the device (unused) |
10153 | 2035 | @type str |
9878 | 2036 | @return tuple containing a flag indicating success and an error message |
2037 | @rtype tuple of (bool, str) | |
2038 | """ | |
2039 | return False, "" | |
2040 | ||
2041 | def disconnectFromLan(self): | |
2042 | """ | |
2043 | Public method to disconnect from the LAN. | |
2044 | ||
2045 | @return tuple containing a flag indicating success and an error message | |
2046 | @rtype tuple of (bool, str) | |
2047 | """ | |
2048 | return True, "" | |
2049 | ||
10144 | 2050 | def isLanConnected(self): |
2051 | """ | |
2052 | Public method to check the LAN connection status. | |
2053 | ||
2054 | @return flag indicating that the device is connected to the LAN | |
2055 | @rtype bool | |
2056 | """ | |
2057 | return False | |
2058 | ||
9878 | 2059 | def checkInternetViaLan(self): |
2060 | """ | |
2061 | Public method to check, if the internet can be reached (LAN variant). | |
2062 | ||
2063 | @return tuple containing a flag indicating reachability and an error string | |
2064 | @rtype tuple of (bool, str) | |
2065 | """ | |
2066 | return False, "" | |
2067 | ||
2068 | def deactivateEthernet(self): | |
2069 | """ | |
2070 | Public method to deactivate the Ethernet interface of the connected device. | |
2071 | ||
2072 | @return tuple containg a flag indicating success and an error message | |
2073 | @rtype tuple of (bool, str) | |
2074 | """ | |
2075 | return True, "" | |
2076 | ||
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
2077 | def writeLanAutoConnect(self, config, hostname): # noqa: U-100 |
9878 | 2078 | """ |
2079 | Public method to generate a script and associated configuration to connect the | |
2080 | device to the LAN during boot time. | |
2081 | ||
2082 | @param config configuration for the connection (either the string 'dhcp' | |
2083 | for a dynamic address or a tuple of four strings with the IPv4 parameters. | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2084 | (unused) |
9878 | 2085 | @type str or tuple of (str, str, str, str) |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2086 | @param hostname host name of the device (unused) |
10153 | 2087 | @type str |
9878 | 2088 | @return tuple containing a flag indicating success and an error message |
2089 | @rtype tuple of (bool, str) | |
2090 | """ | |
2091 | return False, "" | |
2092 | ||
2093 | def removeLanAutoConnect(self): | |
2094 | """ | |
2095 | Public method to remove the saved IPv4 parameters from the connected device. | |
2096 | ||
2097 | Note: This disables the LAN auto-connect feature. | |
2098 | ||
2099 | @return tuple containing a flag indicating success and an error message | |
2100 | @rtype tuple of (bool, str) | |
2101 | """ | |
2102 | return False, "" | |
2103 | ||
9775
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2104 | ################################################################## |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2105 | ## Methods below implement Bluetooth related methods |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2106 | ################################################################## |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2107 | |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2108 | def hasBluetooth(self): |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2109 | """ |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2110 | Public method to check the availability of Bluetooth. |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2111 | |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2112 | @return flag indicating the availability of Bluetooth |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2113 | @rtype bool |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2114 | """ |
c6806d24468b
Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9773
diff
changeset
|
2115 | return False |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
2116 | |
9855 | 2117 | def addDeviceBluetoothEntries(self, menu): |
2118 | """ | |
2119 | Public method to add device specific entries to the given menu. | |
2120 | ||
2121 | @param menu reference to the context menu | |
2122 | @type QMenu | |
2123 | """ | |
2124 | pass | |
2125 | ||
2126 | def getBluetoothStatus(self): | |
2127 | """ | |
2128 | Public method to get Bluetooth status data of the connected board. | |
2129 | ||
2130 | @return list of tuples containing the translated status data label and | |
2131 | the associated value | |
2132 | @rtype list of tuples of (str, str) | |
2133 | """ | |
2134 | return [] | |
2135 | ||
2136 | def activateBluetoothInterface(self): | |
2137 | """ | |
2138 | Public method to activate the Bluetooth interface. | |
2139 | ||
2140 | @return flag indicating the new state of the Bluetooth interface | |
2141 | @rtype bool | |
2142 | """ | |
2143 | return False | |
2144 | ||
2145 | def deactivateBluetoothInterface(self): | |
2146 | """ | |
2147 | Public method to deactivate the Bluetooth interface. | |
2148 | ||
2149 | @return flag indicating the new state of the Bluetooth interface | |
2150 | @rtype bool | |
2151 | """ | |
2152 | return False | |
2153 | ||
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
2154 | def getDeviceScan(self, timeout=10): # noqa: U-100 |
9857 | 2155 | """ |
2156 | Public method to perform a Bluetooth device scan. | |
2157 | ||
2158 | @param timeout duration of the device scan in seconds (defaults | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2159 | to 10) (unused) |
9857 | 2160 | @type int (optional) |
2161 | @return tuple containing a dictionary with the scan results and | |
2162 | an error string | |
2163 | @rtype tuple of (dict, str) | |
2164 | """ | |
2165 | return {}, "" | |
2166 | ||
11167 | 2167 | def supportsDeviceScan(self): |
2168 | """ | |
2169 | Public method to indicate, that the Bluetooth implementation supports | |
2170 | scanning for devices. | |
2171 | ||
2172 | @return flag indicating that the scanning function is supported | |
2173 | @rtype bool | |
2174 | """ | |
2175 | return False | |
2176 | ||
9855 | 2177 | ################################################################## |
9868 | 2178 | ## Methods below implement NTP related methods |
2179 | ################################################################## | |
2180 | ||
2181 | def hasNetworkTime(self): | |
2182 | """ | |
2183 | Public method to check the availability of network time functions. | |
2184 | ||
2185 | @return flag indicating the availability of network time functions | |
2186 | @rtype bool | |
2187 | """ | |
2188 | return False | |
2189 | ||
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10034
diff
changeset
|
2190 | def setNetworkTime( |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
2191 | self, server="pool.ntp.org", tzOffset=0, timeout=10 # noqa: U-100 |
10069
435cc5875135
Corrected and checked some code style issues (unused function arguments).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10034
diff
changeset
|
2192 | ): |
9868 | 2193 | """ |
2194 | Public method to set the time to the network time retrieved from an | |
2195 | NTP server. | |
2196 | ||
2197 | @param server name of the NTP server to get the network time from | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2198 | (defaults to "0.pool.ntp.org") (unused) |
9868 | 2199 | @type str (optional) |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2200 | @param tzOffset offset with respect to UTC (defaults to 0) (unused) |
9868 | 2201 | @type int (optional) |
2202 | @param timeout maximum time to wait for a server response in seconds | |
10683
779cda568acb
Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10515
diff
changeset
|
2203 | (defaults to 10) (unused) |
9868 | 2204 | @type int |
2205 | @return tuple containing a flag indicating success and an error string | |
2206 | @rtype tuple of (bool, str) | |
2207 | """ | |
2208 | return False, "" | |
2209 | ||
2210 | ################################################################## | |
9855 | 2211 | ## Methods below implement some utility methods |
2212 | ################################################################## | |
2213 | ||
2214 | def bool2str(self, val, capitalized=True): | |
2215 | """ | |
2216 | Public method to generate a yes/no string given a truth value. | |
2217 | ||
2218 | @param val truth value to be converted | |
2219 | @type bool | |
2220 | @param capitalized flag indicating a capitalized variant | |
2221 | @type bool | |
2222 | @return string with 'yes' or 'no' | |
2223 | @rtype str | |
2224 | """ | |
2225 | if capitalized: | |
2226 | return self.tr("Yes") if val else self.tr("No") | |
2227 | else: | |
2228 | return self.tr("yes") if val else self.tr("no") | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
2229 | |
9857 | 2230 | |
9765
6378da868bb0
Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9763
diff
changeset
|
2231 | # |
11148
15e30f0c76a8
Adjusted the code to the modified issue codes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
11090
diff
changeset
|
2232 | # eflag: noqa = M-613 |