src/eric7/MicroPython/Devices/DeviceBase.py

Thu, 20 Mar 2025 11:54:57 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 20 Mar 2025 11:54:57 +0100
branch
eric7
changeset 11177
f511038a0061
parent 11167
a3f5af773bc7
child 11183
553b50b72f5b
permissions
-rw-r--r--

Corrected some issues related to controllers with small RAM and limited numbers support (i.e. BBC micro:bit and Calliope mini).

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

eric ide

mercurial