src/eric7/MicroPython/MicroPythonDeviceInterface.py

Tue, 02 May 2023 12:01:40 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Tue, 02 May 2023 12:01:40 +0200
branch
mpy_network
changeset 10008
c5bcafe3485c
parent 9990
54c614d91eff
child 10012
d649d500a9a1
permissions
-rw-r--r--

MicroPython
- Added an interface to the `WebRepl` of some devices.

7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
7 Module implementing an interface base class to talk to a connected MicroPython device.
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
10 from PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9764
diff changeset
13 class MicroPythonDeviceInterface(QObject):
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 """
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
15 Class implementing an interface to talk to a connected MicroPython device.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
16
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 @signal executeAsyncFinished() emitted to indicate the end of an
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 asynchronously executed list of commands (e.g. a script)
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
19 @signal dataReceived(data) emitted to send data received via the connection
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
20 for further processing
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
22
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 executeAsyncFinished = pyqtSignal()
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 dataReceived = pyqtSignal(bytes)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
25
10008
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
26 PasteModePrompt = b"=== "
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
27 TracebackMarker = b"Traceback (most recent call last):"
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
28
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 def __init__(self, parent=None):
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
32
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent reference to the parent object
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type QObject
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
36 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
37
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @pyqtSlot()
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
39 def connectToDevice(self, connection):
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
41 Public slot to connect to the device.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
42
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
43 @param connection name of the connection to be used
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type str
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @return flag indicating success
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
47 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
48 be implemented in a derived class
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
50 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
51 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
52 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
53
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
54 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
55
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 @pyqtSlot()
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def disconnectFromDevice(self):
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
59 Public slot to disconnect from the device.
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
60
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
61 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
62 be implemented in a derived class
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
64 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
65 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
66 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
67
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 def isConnected(self):
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 Public method to get the connection status.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @return flag indicating the connection status
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
74 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
75 be implemented in a derived class
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
77 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
78 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
79 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
80
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
81 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
82
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 @pyqtSlot()
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 def handlePreferencesChanged(self):
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 Public slot to handle a change of the preferences.
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
88 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 def write(self, data):
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 Public method to write data to the connected device.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
93
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @param data data to be written
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 @type bytes or bytearray
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
96 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
97 be implemented in a derived class
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
98 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
99 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
100 "This method needs to be implemented in a derived class."
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
101 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
102
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
103 def probeDevice(self):
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
104 """
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
105 Public method to check the device is responding.
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
106
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
107 If the device has not been flashed with a MicroPython firmware, the
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
108 probe will fail.
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
109
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
110 @return flag indicating a communicating MicroPython device
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
111 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
112 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
113 be implemented in a derived class
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
114 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
115 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
116 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
117 )
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
118
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
119 return False
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
120
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
121 def execute(self, commands, *, mode="raw", timeout=0):
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 Public method to send commands to the connected device and return the
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 result.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
126 If no connection is available, empty results will be returned.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 @param commands list of commands to be executed
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9764
diff changeset
129 @type str or list of str
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
130 @keyparam mode submit mode to be used (one of 'raw' or 'paste') (defaults to
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
131 'raw')
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
132 @type str
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
133 @keyparam timeout per command timeout in milliseconds (0 for configured default)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
134 (defaults to 0)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
135 @type int (optional)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
136 @return tuple containing stdout and stderr output of the device
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
137 @rtype tuple of (bytes, bytes)
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
138 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
139 be implemented in a derived class
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
140 @exception ValueError raised in case of an unsupported submit mode
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
141 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
142 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
143 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
144 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
145
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
146 if mode not in ("paste", "raw"):
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
147 raise ValueError("Unsupported submit mode given ('{0}').".format(mode))
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
148
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
149 return b"", b""
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
150
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
151 def executeAsync(self, commandsList, submitMode):
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 """
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 Public method to execute a series of commands over a period of time
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 without returning any result (asynchronous execution).
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
155
7095
8e10acb1cd85 Refactored and improved the MicroPython code to be able to show the file manager and the REPL simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 @param commandsList list of commands to be execute on the device
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
157 @type list of str
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
158 @param submitMode mode to be used to submit the commands (one of 'raw'
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
159 or 'paste')
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
160 @type str
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
161 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
162 be implemented in a derived class
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
163 @exception ValueError raised to indicate an unknown submit mode
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
164 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
165 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
166 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
167 )
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
168
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
169 if submitMode not in ("raw", "paste"):
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
170 raise ValueError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
171 "Unsupported submit mode given ('{0}').".format(submitMode)
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
172 )

eric ide

mercurial