src/eric7/MicroPython/MicroPythonDeviceInterface.py

Fri, 28 Apr 2023 12:07:41 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 28 Apr 2023 12:07:41 +0200
branch
mpy_network
changeset 9990
54c614d91eff
parent 9989
286c2a21f36f
child 10008
c5bcafe3485c
permissions
-rw-r--r--

MicroPython
- Refactored the code by introducing a device interface base class and changed the interface instantiation logic to prepare the basis for developing the 'webrepl' interface.

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

eric ide

mercurial