src/eric7/MicroPython/Devices/DeviceBase.py

Tue, 14 Mar 2023 13:18:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 14 Mar 2023 13:18:54 +0100
branch
mpy_network
changeset 9889
49728322ffb4
parent 9880
f425c58cf8e9
child 9906
39daf45010c8
permissions
-rw-r--r--

Completed the µPy board interface description.

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
9653
e67609152c5e Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9614
diff changeset
3 # Copyright (c) 2019 - 2023 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
f0e22f3a5878 Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
33 the time on the board and getting board related data. Supported file system
f0e22f3a5878 Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
34 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
35 <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
36 <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
37 <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
38 <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
39 <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
40 <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
41 <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
42 <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
43 <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
44 <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
45 <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
46 <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
47 <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
48 <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
49 <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
50 </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
51
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 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
53 <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
54 <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
55 <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
56 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
57 <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
58 <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
59 <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
60 <li>syncTime: synchronize the time 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
61 </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
62
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
63 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
64 <ul>
9792
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
65 <li>hasWifi: check, if the board has WiFi functionality</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
66 <li>getWifiData: get WiFi status data</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
67 <li>connectWifi: connect to a WiFi network</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
68 <li>disconnectWifi: disconnect from a WiFi network</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
69 <li>writeCredentials: save the WiFi credentials to the board and create
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
70 functionality to auto-connect at boot time</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
71 <li>removeCredentials: remove the saved credentials</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
72 <li>checkInternet: check, if internet access is possible</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
73 <li>scanNetworks: scan for available WiFi networks</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
74 <li>deactivateInterface: deactivate a WiFi interface</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
75 <li>startAccessPoint: start an access point</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
76 <li>stopAccessPoint: stop the access point</li>
c5c55266b006 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9789
diff changeset
77 <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
78 </ul>
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
79
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
80 Supported Bluetooth commands are:
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
81 <ul>
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
82 <li>hasBluetooth: check, if the board has Bluetooth functionality</li>
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
83 <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
84 <li>activateBluetoothInterface: activate a Bluetooth interface</li>
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
85 <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
86 <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
87 </ul>
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
88
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
89 Supported Ethernet commands are:
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
90 <ul>
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
91 <li>hasEthernet: check, if the board has Ethernet functionality
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
92 <li>getEthernetStatus: get Ethernet status data
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
93 <li>connectToLan: connect to an Ethernet network
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
94 <li>disconnectFromLan: disconnect from an Ethernet network
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
95 <li>checkInternetViaLan: check, if internet access via LAN is possible
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
96 <li>deactivateEthernet: deactivate the Ethernet interface
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
97 <li>writeLanAutoConnect: save IPv4 parameters to the board and create a script
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
98 to connect the board to the LAN
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
99 <li>removeLanAutoConnect: remove the IPv4 parameters and script from the board
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
100 </ul>
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102
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
103 def __init__(self, microPythonWidget, deviceType, parent=None):
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
106
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
107 @param microPythonWidget reference to the main MicroPython widget
7134
21d23ca51680 Renamed "MicroPythonReplWidget" to "MicroPythonWidget".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7129
diff changeset
108 @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
109 @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
110 @type str
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 @param parent reference to the parent object
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @type QObject
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
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
114 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
115
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 self._deviceType = deviceType
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
117 self._interface = microPythonWidget.deviceInterface()
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
118 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
119 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
120
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
121 self._submitMode = "raw" # default is 'raw' mode to submit commands
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
122
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
123 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
124 """
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
125 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
126
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
127 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
128 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
129
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
130 @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
131 @type bool
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
132 """
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
133 self._deviceData = {}
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
134
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
135 if connected:
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
136 with contextlib.suppress(OSError):
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
137 self._deviceData = self.__getDeviceData()
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
138 self._deviceData["wifi"], self._deviceData["wifi_type"] = self.hasWifi()
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
139 self._deviceData["bluetooth"] = self.hasBluetooth()
9878
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
140 (
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
141 self._deviceData["ethernet"],
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
142 self._deviceData["ethernet_type"],
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
143 ) = self.hasEthernet()
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
144 self._deviceData["ntp"] = self.hasNetworkTime()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
145
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
146 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
147 """
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
148 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
149
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
150 @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
151 @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
152 """
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
153 return self._deviceType
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
155 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
156 """
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
157 Public method to get a copy of the determined device data.
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
158
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
159 @param key name of the data to get (None to get all data) (defaults to None)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
160 @type str (optional)
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
161 @return dictionary containing the essential device data
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
162 @rtype dict
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
163 """
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
164 if key is None:
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
165 return copy.deepcopy(self._deviceData)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
166 else:
9816
4aeaf6df7283 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9808
diff changeset
167 try:
4aeaf6df7283 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9808
diff changeset
168 return self._deviceData[key]
4aeaf6df7283 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9808
diff changeset
169 except KeyError:
4aeaf6df7283 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9808
diff changeset
170 return None
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
171
9804
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
172 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
173 """
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
174 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
175 connecting the device.
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
176
9804
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
177 @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
178 not available (defaults to True)
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
179 @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
180 @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
181 @rtype bool
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
182 """
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
183 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
184 return True
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
185 else:
9804
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
186 if not quiet:
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
187 EricMessageBox.critical(
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
188 None,
9803
2ab3de60b51c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9802
diff changeset
189 self.tr("Device Data Not Available"),
9804
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
190 self.tr(
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
191 """<p>The device data is not available. Try to connect to the"""
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
192 """ device again. Aborting...</p>"""
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
193 ).format(self.getDeviceType()),
b7e200d35be9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9801
diff changeset
194 )
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
195 return False
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
196
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
197 def hasCircuitPython(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
198 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
199 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
200
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
201 @return flag indicating CircuitPython
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
202 @rtype bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
203 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
204 return (
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
205 self.checkDeviceData()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
206 and self._deviceData["mpy_name"].lower() == "circuitpython"
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
207 )
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
208
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
209 def submitMode(self):
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
210 """
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
211 Public method to get the submit mode of the device.
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
212
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
213 @return submit mode
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
214 @rtype str (one of 'raw', 'paste')
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
215 """
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
216 return self._submitMode
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
217
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
218 def setButtons(self):
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219 """
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
220 Public method to enable the supported action buttons.
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 """
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
222 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
223 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
224 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
225
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
226 def forceInterrupt(self):
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 """
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
228 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
229 serial connection.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
230
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
231 @return flag indicating an interrupt is needed
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
232 @rtype bool
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
233 """
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
234 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
235
7125
2028553ee58c CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7123
diff changeset
236 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
237 """
2028553ee58c CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7123
diff changeset
238 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
239
7125
2028553ee58c CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7123
diff changeset
240 @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
241 @rtype str
2028553ee58c CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7123
diff changeset
242 """
2028553ee58c CircuitPythonDevices, EspDevices, MicroPythonDevices: added a method to get the device name.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7123
diff changeset
243 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
244
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
245 def canStartRepl(self):
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
246 """
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
247 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
248
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
249 @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
250 and a reason why it cannot.
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
251 @rtype tuple of (bool, str)
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
252 """
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
253 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
254
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
255 def setRepl(self, on):
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
256 """
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
257 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
258
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
259 @param on flag indicating the active status
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
260 @type bool
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
261 """
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
262 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
263
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
264 def canStartPlotter(self):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
265 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
266 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
267
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
268 @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
269 Plotter and a reason why it cannot.
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
270 @rtype tuple of (bool, str)
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
271 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
272 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
273
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
274 def setPlotter(self, on):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
275 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
276 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
277
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
278 @param on flag indicating the active status
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
279 @type bool
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
280 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
281 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
282
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
283 def canRunScript(self):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
284 """
7091
84d2a73b448a EspDevices, MicroPythonDevices: fixed a wrong source docu string.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7082
diff changeset
285 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
286
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
287 @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
288 Plotter and a reason why it cannot.
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
289 @rtype tuple of (bool, str)
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
290 """
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9498
diff changeset
291 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
292
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
293 def runScript(self, script):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
294 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
295 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
296
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
297 @param script script to be executed
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
298 @type str
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
299 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
300 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
301
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
302 def canStartFileManager(self):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
303 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
304 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
305
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
306 @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
307 File Manager and a reason why it cannot.
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
308 @rtype tuple of (bool, str)
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
309 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
310 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
311
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
312 def setFileManager(self, on):
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 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
315
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
316 @param on flag indicating the active status
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
317 @type bool
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
318 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
319 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
320
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
321 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
322 """
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
323 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
324
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
325 @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
326 @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
327 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
328 return False # default
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
329
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
330 def getWorkspace(self):
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
331 """
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
332 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
333
7058
bdd583f96e96 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7054
diff changeset
334 @return workspace directory used for saving files
7054
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335 @rtype str
fb84d8489bc1 Started implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
336 """
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
337 return (
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
338 Preferences.getMicroPython("MpyWorkspace")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
339 or Preferences.getMultiProject("Workspace")
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
340 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
341 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
342
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
343 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
344 """
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
345 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
346 ones.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
347
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
348 @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
349 @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
350 @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
351 @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
352 """
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
353 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
354 None,
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
355 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
356 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
357 [""] + deviceDirectories,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
358 0,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359 False,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
360 )
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
361 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
362 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
363 else:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8055
diff changeset
364 # 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
365 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
366
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
367 def sendCommands(self, commandsList):
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
368 """
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
369 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
370
7059
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
371 @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
372 @type list of str
a8fad276cbd5 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7058
diff changeset
373 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
374 if self._submitMode == "raw":
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
375 rawOn = [ # sequence of commands to enter raw mode
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
376 b"\x02", # Ctrl-B: exit raw repl (just in case)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
377 b"\r\x03\x03\x03", # Ctrl-C three times: interrupt any running program
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
378 b"\r\x01", # Ctrl-A: enter raw REPL
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
379 ]
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
380 newLine = [
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
381 b'print("\\n")\r',
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
382 ]
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
383 commands = [c.encode("utf-8)") + b"\r" for c in commandsList]
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
384 commands.append(b"\r")
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
385 commands.append(b"\x04")
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
386 rawOff = [b"\x02", b"\x02"]
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
387 commandSequence = rawOn + newLine + commands + rawOff
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
388 self._interface.executeAsync(commandSequence)
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
389 elif self._submitMode == "paste":
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
390 commands = b"\n".join([c.encode("utf-8)") for c in commandsList])
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
391 commandSequence = ["@PasteOn@", commands]
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9798
diff changeset
392 self._interface.executeAsyncPaste(commandSequence)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
393
7065
e3d04faced34 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7061
diff changeset
394 @pyqtSlot()
e3d04faced34 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7061
diff changeset
395 def handleDataFlood(self):
e3d04faced34 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7061
diff changeset
396 """
e3d04faced34 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7061
diff changeset
397 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
398 """
e3d04faced34 Continued implementing the MicroPython support.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7061
diff changeset
399 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
400
7108
4f6133a01c6a Started rearranging menu structure and testing and fixing on CircuitPython.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7095
diff changeset
401 def addDeviceMenuEntries(self, menu):
7082
ec199ef0cfc6 MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7068
diff changeset
402 """
ec199ef0cfc6 MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7068
diff changeset
403 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
404
7082
ec199ef0cfc6 MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7068
diff changeset
405 @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
406 @type QMenu
ec199ef0cfc6 MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7068
diff changeset
407 """
ec199ef0cfc6 MicroPython: continued implementing the file manager widget.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7068
diff changeset
408 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
409
8096
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
410 def hasFlashMenuEntry(self):
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
411 """
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
412 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
413
8096
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
414 @return flag indicating a specific flash menu entry
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
415 @rtype bool
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
416 """
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8092
diff changeset
417 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
418
7123
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
419 def hasTimeCommands(self):
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
420 """
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
421 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
422
7123
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
423 The default returns True.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
424
7123
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
425 @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
426 @rtype bool
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
427 """
94948e2aa0a5 Implemented the support for the 'BBC micro:bit' device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7108
diff changeset
428 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
429
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
430 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
431 """
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
432 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
433 URL.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
434
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
435 @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
436 @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
437 """
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
438 return bool(self.getDocumentationUrl())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
439
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
440 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
441 """
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
442 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
443
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
444 @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
445 @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
446 """
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
447 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
448
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
449 def hasFirmwareUrl(self):
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
450 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
451 Public method to check, if the device has a configured firmware
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
452 download URL.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
453
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
454 @return flag indicating a configured firmware download URL
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
455 @rtype bool
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
456 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
457 return bool(self.getFirmwareUrl())
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
458
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
459 def getFirmwareUrl(self):
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
460 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
461 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
462
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
463 @return firmware download URL of the device
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
464 @rtype str
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
465 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7295
diff changeset
466 return ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
467
8038
73ec029d4107 MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8024
diff changeset
468 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
469 """
73ec029d4107 MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8024
diff changeset
470 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
471 """
73ec029d4107 MicroPython: improved the support for "BBC micro:bit" and "Calliope mini".
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8024
diff changeset
472 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
473 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
474 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
475
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
476 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
477 """
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
478 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
479
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
480 @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
481 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
482 @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
483 """
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
484 return []
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
485
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
486 def _shortError(self, error):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
487 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
488 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
489
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
490 @param error verbose error message
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
491 @type bytes
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
492 @return shortened error message
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
493 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
494 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
495 if error:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
496 decodedError = error.decode("utf-8")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
497 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
498 return decodedError.split["\r\n"][-2]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
499 except Exception:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
500 return decodedError
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
501
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
502 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
503
9779
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
504 ##################################################################
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
505 ## 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
506 ##################################################################
8d3c7c991085 Continued implementing WiFi functionality for RP2040 based devices (set country, menu hierarchy).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9776
diff changeset
507
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
508 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
509 """
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
510 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
511
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
512 @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
513 @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
514 @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
515 @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
516 @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
517 """
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
518 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
519 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
520 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
521 __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
522 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
523 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
524 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
525 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
526 """.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
527 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
528 )
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
529 out, err = self._interface.execute(command, mode=self._submitMode)
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
530 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
531 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
532 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
533
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
534 def ls(self, dirname=""):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
535 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
536 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
537
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
538 @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
539 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
540 @return tuple containg the directory listing
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
541 @rtype tuple of str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
542 @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
543 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
544 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
545 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
546 print(__os_.listdir('{0}'))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
547 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
548 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
549 dirname
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
550 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
551 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
552 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
553 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
554 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
555
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
556 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
557 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
558 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
559 including meta data.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
560
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
561 @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
562 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
563 @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
564 @type bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
565 @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
566 @type bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
567 @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
568 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
569 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
570 directory doesn't exist.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
571 @rtype tuple of (str, tuple)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
572 @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
573 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
574 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
575 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
576
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
577 def is_visible(filename, showHidden):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
578 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
579
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
580 def stat(filename):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
581 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
582 rstat = __os_.lstat(filename)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
583 except:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
584 rstat = __os_.stat(filename)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
585 return tuple(rstat)
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 def listdir_stat(dirname, showHidden):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
588 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
589 files = __os_.listdir(dirname)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
590 except OSError:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
591 return []
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
592 if dirname in ('', '/'):
9889
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
593 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
594 return list(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
595 (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
596 )
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
597
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
598 print(listdir_stat('{0}', {1}))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
599 del __os_, stat, listdir_stat, is_visible
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
600 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
601 dirname, showHidden
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
602 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
603 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
604 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
605 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
606 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
607 if fileslist is None:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
608 return None
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
609 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
610 if fullstat:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
611 return fileslist
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
612 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
613 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
614
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
615 def cd(self, dirname):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
616 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
617 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
618
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
619 @param dirname directory to change to
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
620 @type str
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 if dirname:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
624 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
625 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
626 __os_.chdir('{0}')
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
627 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
628 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
629 dirname
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
630 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
631 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
632 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
633 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
634
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
635 def pwd(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
636 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
637 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
638
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
639 @return current directory
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
640 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
641 @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
642 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
643 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
644 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
645 print(__os_.getcwd())
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
646 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
647 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
648 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
649 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
650 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
651 return out.decode("utf-8").strip()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
652
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
653 def rm(self, filename):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
654 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
655 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
656
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
657 @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
658 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
659 @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
660 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
661 if filename:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
662 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
663 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
664 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
665 __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
666 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
667 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
668 raise err
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
669 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
670 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
671 filename
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
672 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
673 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
674 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
675 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
676
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
677 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
678 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
679 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
680
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
681 @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
682 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
683 @param recursive flag indicating a recursive deletion
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
684 @type bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
685 @param force flag indicating to ignore errors
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
686 @type bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
687 @return flag indicating success
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
688 @rtype bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
689 @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
690 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
691 if name:
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
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
695 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
696 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
697 mode = __os_.stat(name)[0]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
698 if mode & 0x4000 != 0:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
699 if recursive:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
700 for file in __os_.listdir(name):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
701 success = remove_file(name + '/' + file, recursive, force)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
702 if not success and not force:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
703 return False
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
704 __os_.rmdir(name)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
705 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
706 if not force:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
707 return False
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
708 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
709 __os_.remove(name)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
710 except:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
711 if not force:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
712 return False
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
713 return True
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
714
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
715 print(remove_file('{0}', {1}, {2}))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
716 del __os_, remove_file
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
717 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
718 name, recursive, force
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
719 )
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
720 out, err = self._interface.execute(
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
721 command, mode=self._submitMode, timeout=20000
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
722 )
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 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
726
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
727 return False
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
728
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
729 def mkdir(self, dirname):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
730 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
731 Public method to create a new directory.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
732
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
733 @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
734 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
735 @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
736 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
737 if dirname:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
738 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
739 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
740 __os_.mkdir('{0}')
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
741 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
742 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
743 dirname
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
744 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
745 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
746 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
747 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
748
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
749 def rmdir(self, dirname):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
750 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
751 Public method to remove a directory.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
752
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
753 @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
754 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
755 @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
756 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
757 if dirname:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
758 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
759 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
760
f0e22f3a5878 Fixed a few issue introduced during the recent changes to the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
761 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
762 __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
763 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
764 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
765 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
766 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
767 raise
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
768 del __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
769 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
770 dirname
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
771 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
772 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
773 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
774 raise OSError(self._shortError(err))
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 def put(self, hostFileName, deviceFileName=None):
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 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
779
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
780 @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
781 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
782 @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
783 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
784 @return flag indicating success
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
785 @rtype bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
786 @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
787 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
788 if not os.path.isfile(hostFileName):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
789 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
790
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
791 if not deviceFileName:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
792 deviceFileName = os.path.basename(hostFileName)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
793
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
794 with open(hostFileName, "rb") as hostFile:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
795 content = hostFile.read()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
796
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
797 return self.putData(deviceFileName, content)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
798
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
799 def putData(self, deviceFileName, content):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
800 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
801 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
802
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
803 @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
804 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
805 @param content data to write
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
806 @type bytes
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
807 @return flag indicating success
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
808 @rtype bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
809 @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
810 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
811 if not deviceFileName:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
812 raise OSError("Missing device file name")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
813
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
814 # convert eol '\r'
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
815 content = content.replace(b"\r\n", b"\r")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
816 content = content.replace(b"\n", b"\r")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
817
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
818 commands = [
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
819 "fd = open('{0}', 'wb')".format(deviceFileName),
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
820 "f = fd.write",
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
821 ]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
822 while content:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
823 chunk = content[:64]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
824 commands.append("f(" + repr(chunk) + ")")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
825 content = content[64:]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
826 commands.extend(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
827 [
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
828 "fd.close()",
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
829 "del f, fd",
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
830 ]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
831 )
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
832 command = "\n".join(commands)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
833
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
834 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
835 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
836 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
837 return True
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
838
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
839 def get(self, deviceFileName, hostFileName=None):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
840 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
841 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
842
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
843 @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
844 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
845 @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
846 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
847 @return flag indicating success
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
848 @rtype bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
849 @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
850 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
851 if not deviceFileName:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
852 raise OSError("Missing device file name")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
853
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
854 if not hostFileName:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
855 hostFileName = deviceFileName
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
856
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
857 out = self.getData(deviceFileName)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
858 with open(hostFileName, "wb") as hostFile:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
859 hostFile.write(out)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
860
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
861 return True
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
862
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
863 def getData(self, deviceFileName):
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 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
866
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
867 @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
868 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
869 @return data read from the device
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
870 @rtype bytes
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
871 @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
872 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
873 if not deviceFileName:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
874 raise OSError("Missing device file name")
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
875
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
876 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
877 def send_data():
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
878 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
879 from microbit import uart as u
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
880 except ImportError:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
881 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
882 from sys import stdout as u
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
883 except ImportError:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
884 try:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
885 from machine import UART
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
886 u = UART(0, 115200)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
887 except Exception:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
888 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
889 f = open('{0}', 'rb')
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
890 r = f.read
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
891 result = True
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
892 while result:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
893 result = r(32)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
894 if result:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
895 u.write(result)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
896 f.close()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
897
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
898 send_data()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
899 del send_data
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
900 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
901 deviceFileName
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
902 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
903 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
904 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
905 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
906
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
907 # 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
908 # convert eol to "\n"
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
909 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
910 out = out.replace(b"\r", b"\n")
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 return out
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 def fileSystemInfo(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
915 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
916 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
917 systems.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
918
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
919 @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
920 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
921 @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
922 @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
923 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
924 command = """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
925 import os as __os_
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
926
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
927 def fsinfo():
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
928 infolist = []
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
929 info = __os_.statvfs('/')
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
930 if info[0] == 0:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
931 fsnames = __os_.listdir('/')
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
932 for fs in fsnames:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
933 fs = '/' + fs
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
934 infolist.append((fs, __os_.statvfs(fs)))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
935 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
936 infolist.append(('/', info))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
937 return infolist
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
938
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
939 print(fsinfo())
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
940 del __os_, fsinfo
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
941 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
942 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
943 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
944 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
945 infolist = ast.literal_eval(out.decode("utf-8"))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
946 if infolist is None:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
947 return None
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
948 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
949 filesystemInfos = []
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
950 for fs, info in infolist:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
951 totalSize = info[2] * info[1]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
952 freeSize = info[4] * info[1]
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
953 usedSize = totalSize - freeSize
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
954 filesystemInfos.append((fs, totalSize, usedSize, freeSize))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
955
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
956 return tuple(filesystemInfos)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
957
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
958 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
959 ## board information related methods below
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
960 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
961
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
962 def __getDeviceData(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
963 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
964 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
965
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
966 @return dictionary containing the determined data
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
967 @rtype dict
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
968 @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
969 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
970 command = """
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
971 def get_device_data():
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
972 res = {}
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
973
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
974 import os
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
975 uname = os.uname()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
976 res['sysname'] = uname.sysname
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
977 res['nodename'] = uname.nodename
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
978 res['release'] = uname.release
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
979 res['version'] = uname.version
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
980 res['machine'] = uname.machine
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
981
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
982 import sys
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
983 res['py_platform'] = sys.platform
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
984 res['py_version'] = sys.version
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
985
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
986 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
987 res['mpy_name'] = sys.implementation.name
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
988 except AttributeError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
989 res['mpy_name'] = 'unknown'
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
990
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
991 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
992 res['mpy_version'] = '.'.join((str(i) for i in sys.implementation.version))
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
993 except AttributeError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
994 res['mpy_version'] = 'unknown'
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
995
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
996 try:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
997 import pimoroni
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
998 res['mpy_variant'] = 'Pimoroni Pico'
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
999 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1000 import version
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1001 res['mpy_variant_info'] = version.BUILD
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1002 res['mpy_variant_version'] = version.BUILD.split('-')[2][1:]
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1003 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1004 res['mpy_variant_info'] = ''
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1005 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
1006 except ImportError:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1007 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
1008 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
1009 res['mpy_variant_version'] = ''
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1010
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1011 res['mip'] = False
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1012 res['upip'] = False
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1013 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1014 import mip
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1015 res['mip'] = True
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1016 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1017 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1018 import upip
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1019 res['upip'] = True
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1020 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1021 pass
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1022
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1023 return res
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1024
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1025 print(get_device_data())
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1026 del get_device_data
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1027 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
1028 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1029 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1030 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1031 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
1032
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1033 def getBoardInformation(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1034 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1035 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
1036
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1037 @return dictionary containing the determined data
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1038 @rtype dict
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1039 @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
1040 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1041 command = """
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1042 def get_board_info():
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1043 res = {}
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1044
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1045 import gc
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1046 gc.enable()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1047 gc.collect()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1048 mem_alloc = gc.mem_alloc()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1049 mem_free = gc.mem_free()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1050 mem_total = mem_alloc + mem_free
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1051 res['mem_total_kb'] = mem_total / 1024.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1052 res['mem_used_kb'] = mem_alloc / 1024.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1053 res['mem_used_pc'] = mem_alloc / mem_total * 100.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1054 res['mem_free_kb'] = mem_free / 1024.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1055 res['mem_free_pc'] = mem_free / mem_total * 100.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1056 del gc, mem_alloc, mem_free, mem_total
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1057
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1058 import os
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1059 uname = os.uname()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1060 res['sysname'] = uname.sysname
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1061 res['nodename'] = uname.nodename
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1062 res['release'] = uname.release
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1063 res['version'] = uname.version
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1064 res['machine'] = uname.machine
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1065
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1066 import sys
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1067 res['py_platform'] = sys.platform
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1068 res['py_version'] = sys.version
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1069
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1070 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1071 res['mpy_name'] = sys.implementation.name
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1072 except AttributeError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1073 res['mpy_name'] = 'unknown'
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1074 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1075 res['mpy_version'] = '.'.join((str(i) for i in sys.implementation.version))
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1076 except AttributeError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1077 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
1078 try:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1079 import pimoroni
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1080 res['mpy_variant'] = 'Pimoroni Pico'
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1081 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1082 import version
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1083 res['mpy_variant_info'] = version.BUILD
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1084 res['mpy_variant_version'] = version.BUILD.split('-')[2][1:]
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1085 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1086 res['mpy_variant_info'] = ''
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1087 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
1088 except ImportError:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1089 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
1090 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
1091 res['mpy_variant_version'] = ''
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1092
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1093 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1094 stat_ = os.statvfs('/flash')
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1095 res['flash_info_available'] = True
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1096 res['flash_total_kb'] = stat_[2] * stat_[0] / 1024.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1097 res['flash_free_kb'] = stat_[3] * stat_[0] / 1024.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1098 res['flash_used_kb'] = res['flash_total_kb'] - res['flash_free_kb']
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1099 res['flash_free_pc'] = res['flash_free_kb'] / res['flash_total_kb'] * 100.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1100 res['flash_used_pc'] = res['flash_used_kb'] / res['flash_total_kb'] * 100.0
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['flash_info_available'] = False
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1103
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1104 try:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1105 import machine as mc
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1106 if isinstance(mc.freq(), tuple):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1107 res['mc_frequency_mhz'] = mc.freq()[0] / 1000000.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1108 else:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1109 res['mc_frequency_mhz'] = mc.freq() / 1000000.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1110 res['mc_id'] = mc.unique_id()
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1111 except ImportError:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1112 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1113 import microcontroller as mc
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1114 res['mc_frequency_mhz'] = mc.cpu.frequency / 1000000.0
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1115 res['mc_temp_c'] = mc.cpu.temperature
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1116 res['mc_id'] = mc.cpu.uid
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1117 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1118 res['mc_frequency'] = None
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1119 res['mc_temp'] = None
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1120 if 'mc_id' in res:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1121 res['mc_id'] = ':'.join('{0:02X}'.format(x) for x in res['mc_id'])
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1122
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1123 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1124 import ulab
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1125 res['ulab'] = ulab.__version__
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1126 except ImportError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1127 res['ulab'] = None
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1128
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1129 return res
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1130
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1131 print(get_board_info())
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1132 del get_board_info
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1133 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
1134 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1135 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1136 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1137 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
1138
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1139 def getModules(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1140 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1141 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
1142
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1143 @return list of builtin modules
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1144 @rtype list of str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1145 @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
1146 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1147 commands = ["help('modules')"]
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
1148 out, err = self._interface.execute(commands, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1149 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1150 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1151
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1152 modules = []
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1153 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
1154 modules.extend(line.split())
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1155 return modules
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1156
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1157 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1158 ## time related methods below
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1159 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1160
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1161 def getTime(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1162 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1163 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
1164
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1165 @return time of the device
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1166 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1167 @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
1168 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1169 command = """
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1170 def get_time():
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1171 try:
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1172 import rtc
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1173 print(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1174 '{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
1175 .format(*rtc.RTC().datetime[:6])
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1176 )
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1177 except:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1178 import time
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1179 try:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1180 print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()))
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1181 except AttributeError:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1182 tm = time.localtime()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1183 print(
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1184 '{0:04d}-{1:02d}-{2:02d} {3:02d}:{4:02d}:{5:02d}'
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1185 .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
1186 )
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1187
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1188 get_time()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1189 del get_time
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1190 """
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
1191 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1192 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1193 if b"NotImplementedError" in err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1194 return "&lt;unsupported&gt; &lt;unsupported&gt;"
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1195 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1196 return out.decode("utf-8").strip()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1197
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1198 def _getSetTimeCode(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1199 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1200 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
1201
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1202 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
1203 subclasses.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1204
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1205 @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
1206 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1207 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1208 # rtc_time[0] - year 4 digit
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1209 # rtc_time[1] - month 1..12
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1210 # rtc_time[2] - day 1..31
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1211 # 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
1212 # rtc_time[4] - hour 0..23
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1213 # rtc_time[5] - minute 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1214 # rtc_time[6] - second 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1215 # rtc_time[7] - yearday 1..366
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1216 # 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
1217 if self.hasCircuitPython():
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1218 # 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
1219 # 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
1220 return """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1221 def set_time(rtc_time):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1222 import rtc
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1223 import time
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1224 clock = rtc.RTC()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1225 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
1226 clock.datetime = time.struct_time(clock_time)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1227 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1228 else:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1229 return ""
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1230
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1231 def syncTime(self, deviceType, hasCPy=False):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1232 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1233 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
1234 computer's time.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1235
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1236 @param deviceType type of board to sync time to
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1237 @type str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1238 @param hasCPy flag indicating that the device has CircuitPython loadede
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1239 (defaults to False)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1240 @type bool
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1241 @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
1242 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1243 setTimeCode = self._getSetTimeCode()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1244 if setTimeCode:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1245 now = time.localtime(time.time())
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1246 command = """{0}
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1247 set_time({1})
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1248 del set_time
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1249 """.format(
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1250 setTimeCode,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1251 (
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1252 now.tm_year,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1253 now.tm_mon,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1254 now.tm_mday,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1255 now.tm_wday + 1,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1256 now.tm_hour,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1257 now.tm_min,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1258 now.tm_sec,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1259 now.tm_yday,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1260 now.tm_isdst,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1261 ),
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1262 )
9827
21803aa6c3e2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9816
diff changeset
1263 out, err = self._interface.execute(command, mode=self._submitMode)
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1264 if err:
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1265 raise OSError(self._shortError(err))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1266
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1267 ##################################################################
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1268 ## Methods below implement package management related methods
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1269 ##################################################################
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1270
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1271 def upipInstall(self, packages):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1272 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1273 Public method to install packages using 'upip'.
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1274
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
1275 @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
1276 @type list of str
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1277 @return tuple containing the command output and errors
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1278 @return tuple of (str, str)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1279 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1280 command = """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1281 def upip_install():
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1282 import upip
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1283 upip.install({0})
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1284
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1285 upip_install()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1286 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
1287 """.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
1288 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
1289 )
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1290 return self._interface.execute(command, mode=self._submitMode, timeout=60000)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1291
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1292 def mipInstall(self, package, version, mpy):
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1293 """
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
1294 Public method to install packages using 'mip'.
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1295
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1296 @param package package name
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1297 @type str
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1298 @param version package version
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1299 @type str
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1300 @param mpy flag indicating to install as '.mpy' file
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1301 @type bool
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1302 @return tuple containing the command output and errors
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1303 @return tuple of (str, str)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1304 """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1305 parameterStr = repr(package)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1306 if version:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1307 parameterStr += ", version={0}".format(repr(version))
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1308 if not mpy:
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1309 parameterStr += ", mpy=False"
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1310
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1311 command = """
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1312 def mip_install():
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1313 import mip
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1314 mip.install({0})
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1315
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1316 mip_install()
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1317 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
1318 """.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
1319 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
1320 )
9844
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1321 return self._interface.execute(command, mode=self._submitMode, timeout=60000)
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1322
2f3d623f7617 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9829
diff changeset
1323 ##################################################################
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1324 ## Methods below implement WiFi related methods
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1325 ##################################################################
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1326
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1327 def hasWifi(self):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1328 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1329 Public method to check the availability of WiFi.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1330
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1331 @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
1332 and the WiFi type (picow or pimoroni)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1333 @rtype tuple of (bool, str)
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1334 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1335 return False, ""
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1336
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
1337 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
1338 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1339 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
1340
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1341 @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
1342 @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
1343 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1344 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
1345
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1346 def getWifiData(self):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1347 """
9789
d8e0ab86ddca Corrected some code style and formatting issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9787
diff changeset
1348 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
1349
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
1350 @return tuple of three dictionaries containing the WiFi status data
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
1351 for the WiFi client, access point and overall data
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
1352 @rtype tuple of (dict, dict, dict)
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1353 """
9798
4402d76c5fa9 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9797
diff changeset
1354 return {}, {}, {}
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1355
9776
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1356 def connectWifi(self, ssid, password):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1357 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1358 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
1359
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1360 @param ssid name (SSID) of the WiFi network
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1361 @type str
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1362 @param password password needed to connect
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1363 @type str
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1364 @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
1365 @rtype tuple of (bool, str)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1366 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1367 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
1368
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1369 def disconnectWifi(self):
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1370 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1371 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
1372
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1373 @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
1374 @rtype tuple of (bool, str)
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1375 """
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1376 return True, ""
210bf87ae5c7 Continued implementing WiFi functionality for RP2040 based devices.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
1377
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
1378 def writeCredentials(self, ssid, password):
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1379 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1380 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
1381 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
1382
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1383 @param ssid SSID of the network to connect to
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1384 @type 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
1385 @param password password needed to authenticate
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1386 @type 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
1387 @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
1388 @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
1389 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1390 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
1391
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1392 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
1393 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1394 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
1395
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1396 @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
1397 @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
1398 """
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1399 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
1400
9781
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1401 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
1402 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1403 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
1404
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1405 @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
1406 @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
1407 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1408 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
1409
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1410 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
1411 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1412 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
1413
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1414 @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
1415 '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
1416 @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
1417 """
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1418 return [], ""
3112f77f722b Continued implementing WiFi functionality for RP2040 based devices (internet connection, network scan).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9779
diff changeset
1419
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
1420 def deactivateInterface(self, 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
1421 """
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
1422 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
1423
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
1424 @param interface designation of the interface to be deactivated (one of 'AP'
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
1425 or 'STA')
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
1426 @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
1427 @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
1428 @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
1429 """
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
1430 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
1431
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9792
diff changeset
1432 def startAccessPoint(self, ssid, security=None, password=None, ifconfig=None):
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
1433 """
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
1434 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
1435
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
1436 @param ssid SSID of the access point
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1437 @type 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
1438 @param security security method (defaults to None)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1439 @type int (optional)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1440 @param password password (defaults to None)
163511257f24 Continued implementing WiFi functionality for RP2040 based devices (show connected stations, save/remove credentials, boot script for Pico W).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9782
diff changeset
1441 @type str (optional)
9797
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9792
diff changeset
1442 @param ifconfig IPv4 configuration for the access point if not default
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9792
diff changeset
1443 (IPv4 address, netmask, gateway address, DNS server address)
3be7b2326e2c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9792
diff changeset
1444 @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
1445 @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
1446 @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
1447 """
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
1448 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
1449
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
1450 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
1451 """
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
1452 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
1453
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
1454 @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
1455 @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
1456 """
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
1457 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
1458
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
1459 def getConnectedClients(self):
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1460 """
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
1461 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
1462
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
1463 @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
1464 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
1465 @rtype tuple of ([(bytes, int)], str)
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1466 """
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
1467 return [], ""
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1468
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1469 ##################################################################
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1470 ## Methods below implement Ethernet related methods
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1471 ##################################################################
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1472
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1473 def hasEthernet(self):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1474 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1475 Public method to check the availability of Ethernet.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1476
9880
f425c58cf8e9 Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
1477 @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
1478 and the Ethernet type
f425c58cf8e9 Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
1479 @rtype tuple of (bool, str)
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1480 """
9880
f425c58cf8e9 Fixed a bug in the recently added µPy code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9878
diff changeset
1481 return False, ""
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1482
9878
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1483 def addDeviceEthernetEntries(self, menu):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1484 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1485 Public method to add device specific entries to the given menu.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1486
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1487 @param menu reference to the context menu
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1488 @type QMenu
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1489 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1490 pass
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1491
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1492 def getEthernetStatus(self):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1493 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1494 Public method to get Ethernet status data of the connected board.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1495
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1496 @return list of tuples containing the translated status data label and
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1497 the associated value
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1498 @rtype list of tuples of (str, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1499 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1500 return []
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1501
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1502 def connectToLan(self, config):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1503 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1504 Public method to connect the connected device to the LAN.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1505
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1506 @param config configuration for the connection (either the string 'dhcp'
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1507 for a dynamic address or a tuple of four strings with the IPv4 parameters.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1508 @type str or tuple of (str, str, str, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1509 @return tuple containing a flag indicating success and an error message
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1510 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1511 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1512 return False, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1513
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1514 def disconnectFromLan(self):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1515 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1516 Public method to disconnect from the LAN.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1517
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1518 @return tuple containing a flag indicating success and an error message
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1519 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1520 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1521 return True, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1522
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1523 def checkInternetViaLan(self):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1524 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1525 Public method to check, if the internet can be reached (LAN variant).
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1526
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1527 @return tuple containing a flag indicating reachability and an error string
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1528 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1529 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1530 return False, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1531
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1532 def deactivateEthernet(self):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1533 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1534 Public method to deactivate the Ethernet interface of the connected device.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1535
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1536 @return tuple containg a flag indicating success and an error message
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1537 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1538 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1539 return True, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1540
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1541 def writeLanAutoConnect(self, config):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1542 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1543 Public method to generate a script and associated configuration to connect the
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1544 device to the LAN during boot time.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1545
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1546 @param config configuration for the connection (either the string 'dhcp'
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1547 for a dynamic address or a tuple of four strings with the IPv4 parameters.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1548 @type str or tuple of (str, str, str, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1549 @return tuple containing a flag indicating success and an error message
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1550 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1551 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1552 return False, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1553
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1554 def removeLanAutoConnect(self):
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1555 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1556 Public method to remove the saved IPv4 parameters from the connected device.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1557
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1558 Note: This disables the LAN auto-connect feature.
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1559
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1560 @return tuple containing a flag indicating success and an error message
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1561 @rtype tuple of (bool, str)
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1562 """
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1563 return False, ""
a82014a9e57b MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9868
diff changeset
1564
9775
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1565 ##################################################################
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1566 ## Methods below implement Bluetooth related methods
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1567 ##################################################################
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1568
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1569 def hasBluetooth(self):
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1570 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1571 Public method to check the availability of Bluetooth.
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1572
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1573 @return flag indicating the availability of Bluetooth
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1574 @rtype bool
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1575 """
c6806d24468b Created new branch <mpy_network>.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9773
diff changeset
1576 return False
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1577
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1578 def addDeviceBluetoothEntries(self, menu):
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1579 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1580 Public method to add device specific entries to the given menu.
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1581
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1582 @param menu reference to the context menu
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1583 @type QMenu
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1584 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1585 pass
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1586
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1587 def getBluetoothStatus(self):
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1588 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1589 Public method to get Bluetooth status data of the connected board.
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1590
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1591 @return list of tuples containing the translated status data label and
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1592 the associated value
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1593 @rtype list of tuples of (str, str)
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1594 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1595 return []
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1596
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1597 def activateBluetoothInterface(self):
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1598 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1599 Public method to activate the Bluetooth interface.
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1600
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1601 @return flag indicating the new state of the Bluetooth interface
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1602 @rtype bool
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1603 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1604 return False
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1605
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1606 def deactivateBluetoothInterface(self):
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1607 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1608 Public method to deactivate the Bluetooth interface.
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1609
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1610 @return flag indicating the new state of the Bluetooth interface
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1611 @rtype bool
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1612 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1613 return False
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1614
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1615 def getDeviceScan(self, timeout=10):
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1616 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1617 Public method to perform a Bluetooth device scan.
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1618
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1619 @param timeout duration of the device scan in seconds (defaults
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1620 to 10)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1621 @type int (optional)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1622 @return tuple containing a dictionary with the scan results and
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1623 an error string
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1624 @rtype tuple of (dict, str)
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1625 """
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1626 return {}, ""
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1627
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1628 ##################################################################
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1629 ## Methods below implement NTP related methods
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1630 ##################################################################
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1631
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1632 def hasNetworkTime(self):
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1633 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1634 Public method to check the availability of network time functions.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1635
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1636 @return flag indicating the availability of network time functions
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1637 @rtype bool
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1638 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1639 return False
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1640
9889
49728322ffb4 Completed the µPy board interface description.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9880
diff changeset
1641 def setNetworkTime(self, server="pool.ntp.org", tzOffset=0, timeout=10):
9868
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1642 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1643 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
1644 NTP server.
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1645
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1646 @param server name of the NTP server to get the network time from
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1647 (defaults to "0.pool.ntp.org")
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1648 @type str (optional)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1649 @param tzOffset offset with respect to UTC (defaults to 0)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1650 @type int (optional)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1651 @param timeout maximum time to wait for a server response in seconds
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1652 (defaults to 10)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1653 @type int
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1654 @return tuple containing a flag indicating success and an error string
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1655 @rtype tuple of (bool, str)
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1656 """
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1657 return False, ""
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1658
467288cffee2 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9857
diff changeset
1659 ##################################################################
9855
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1660 ## Methods below implement some utility methods
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1661 ##################################################################
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1662
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1663 def bool2str(self, val, capitalized=True):
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1664 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1665 Public method to generate a yes/no string given a truth value.
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1666
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1667 @param val truth value to be converted
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1668 @type bool
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1669 @param capitalized flag indicating a capitalized variant
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1670 @type bool
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1671 @return string with 'yes' or 'no'
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1672 @rtype str
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1673 """
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1674 if capitalized:
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1675 return self.tr("Yes") if val else self.tr("No")
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1676 else:
c9244db5566a MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9853
diff changeset
1677 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
1678
9857
0122ae72618d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9855
diff changeset
1679
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1680 #
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
1681 # eflag: noqa = M613

eric ide

mercurial