src/eric7/MicroPython/MicroPythonDeviceInterface.py

Thu, 04 May 2023 11:47:21 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 04 May 2023 11:47:21 +0200
branch
mpy_network
changeset 10012
d649d500a9a1
parent 10008
c5bcafe3485c
child 10229
e50bbf250343
permissions
-rw-r--r--

MicroPython
- Added code to send OSD data to the MicroPython widget from the device interfaces.

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
10012
d649d500a9a1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10008
diff changeset
21 @signal osdInfo(str) emitted when some OSD data was received from the 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
22 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
23
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
24 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
25 dataReceived = pyqtSignal(bytes)
10012
d649d500a9a1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10008
diff changeset
26 osdInfo = pyqtSignal(str)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
27
10008
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
28 PasteModePrompt = b"=== "
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
29 TracebackMarker = b"Traceback (most recent call last):"
c5bcafe3485c MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9990
diff changeset
30
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
31 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
32 """
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 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
34
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
35 @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
36 @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
37 """
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
38 super().__init__(parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
39
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 @pyqtSlot()
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
41 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
42 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
43 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
44
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
45 @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
46 @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
47 @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
48 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
49 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
50 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
51 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
52 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
53 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
54 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
55
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
56 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
57
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
58 @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
59 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
60 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
61 Public slot to disconnect from the device.
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
62
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
63 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
64 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
65 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
66 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
67 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
68 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
69
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
70 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
71 """
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 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
73
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
74 @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
75 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
76 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
77 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
78 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
79 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
80 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
81 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
82
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
83 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
84
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
85 @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
86 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
87 """
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
88 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
89 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
90 pass
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
91
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
92 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
93 """
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 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
95
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
96 @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
97 @type bytes or bytearray
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
98 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
99 be implemented in a derived class
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
100 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
101 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
102 "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
103 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
104
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
105 def probeDevice(self):
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
106 """
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
107 Public method to check the device is responding.
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
108
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
109 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
110 probe will fail.
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
111
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
112 @return flag indicating a communicating MicroPython device
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
113 @rtype bool
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
114 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
115 be implemented in a derived class
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
116 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
117 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
118 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
119 )
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
120
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
121 return False
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9748
diff changeset
122
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
123 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
124 """
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
125 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
126 result.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
127
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
128 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
129
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
130 @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
131 @type str or list of str
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
132 @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
133 'raw')
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
134 @type str
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
135 @keyparam timeout per command timeout in milliseconds (0 for configured default)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
136 (defaults to 0)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
137 @type int (optional)
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
138 @return tuple containing stdout and stderr output of the device
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
139 @rtype tuple of (bytes, bytes)
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
140 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
141 be implemented in a derived class
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
142 @exception ValueError raised in case of an unsupported submit mode
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
143 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
144 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
145 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
146 )
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
147
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
148 if mode not in ("paste", "raw"):
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
149 raise ValueError("Unsupported submit mode given ('{0}').".format(mode))
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
150
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
151 return b"", b""
9799
a79430a8811d MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9775
diff changeset
152
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
153 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
154 """
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
155 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
156 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
157
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
158 @param commandsList list of commands to be execute on the device
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
159 @type list of str
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
160 @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
161 or 'paste')
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
162 @type str
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
163 @exception NotImplementedError raised to indicate that this method needs to
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
164 be implemented in a derived class
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
165 @exception ValueError raised to indicate an unknown submit mode
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
166 """
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
167 raise NotImplementedError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
168 "This method needs to be implemented in a derived class."
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
169 )
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9826
diff changeset
170
9990
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
171 if submitMode not in ("raw", "paste"):
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
172 raise ValueError(
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
173 "Unsupported submit mode given ('{0}').".format(submitMode)
54c614d91eff MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9989
diff changeset
174 )

eric ide

mercurial