src/eric7/Documentation/Source/eric7.MicroPython.MicroPythonDeviceInterface.html

Thu, 27 Apr 2023 17:59:09 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 27 Apr 2023 17:59:09 +0200
branch
mpy_network
changeset 9989
286c2a21f36f
parent 9799
a79430a8811d
child 9990
54c614d91eff
permissions
-rw-r--r--

MicroPython
- refactored the code to prepare for support of 'webrepl' interface

<!DOCTYPE html>
<html><head>
<title>eric7.MicroPython.MicroPythonDeviceInterface</title>
<meta charset="UTF-8">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<a NAME="top" ID="top"></a>
<h1>eric7.MicroPython.MicroPythonDeviceInterface</h1>

<p>
Module implementing some file system commands for MicroPython.
</p>
<h3>Global Attributes</h3>

<table>
<tr><td>None</td></tr>
</table>
<h3>Classes</h3>

<table>

<tr>
<td><a href="#MicroPythonDeviceInterface">MicroPythonDeviceInterface</a></td>
<td>Class implementing an interface to talk to a connected MicroPython device.</td>
</tr>
</table>
<h3>Functions</h3>

<table>
<tr><td>None</td></tr>
</table>
<hr />
<hr />
<a NAME="MicroPythonDeviceInterface" ID="MicroPythonDeviceInterface"></a>
<h2>MicroPythonDeviceInterface</h2>

<p>
    Class implementing an interface to talk to a connected MicroPython device.
</p>
<h3>Signals</h3>
<dl>

<dt>dataReceived(data)</dt>
<dd>
emitted to send data received via the serial
        connection for further processing
</dd>
<dt>executeAsyncFinished()</dt>
<dd>
emitted to indicate the end of an
        asynchronously executed list of commands (e.g. a script)
</dd>
</dl>
<h3>Derived from</h3>
QObject
<h3>Class Attributes</h3>

<table>
<tr><td>PasteModePrompt</td></tr><tr><td>TracebackMarker</td></tr>
</table>
<h3>Class Methods</h3>

<table>
<tr><td>None</td></tr>
</table>
<h3>Methods</h3>

<table>

<tr>
<td><a href="#MicroPythonDeviceInterface.__init__">MicroPythonDeviceInterface</a></td>
<td>Constructor</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__executeAsyncPaste">__executeAsyncPaste</a></td>
<td>Private method to execute a series of commands over a period of time without returning any result (asynchronous execution).</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__executeAsyncRaw">__executeAsyncRaw</a></td>
<td>Private method to execute a series of commands over a period of time without returning any result (asynchronous execution).</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__execute_paste">__execute_paste</a></td>
<td>Private method to send commands to the connected device using 'paste' mode and return the result.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__execute_raw">__execute_raw</a></td>
<td>Private method to send commands to the connected device using 'raw REPL' mode and return the result.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__pasteOff">__pasteOff</a></td>
<td>Private method to switch 'paste' mode off.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__pasteOn">__pasteOn</a></td>
<td>Private method to switch the connected device to 'paste' mode.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__rawOff">__rawOff</a></td>
<td>Private method to switch 'raw' mode off.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__rawOn">__rawOn</a></td>
<td>Private method to switch the connected device to 'raw' mode.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.__readSerial">__readSerial</a></td>
<td>Private slot to read all available serial data and emit it with the "dataReceived" signal for further processing.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.connectToDevice">connectToDevice</a></td>
<td>Public slot to start the manager.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.disconnectFromDevice">disconnectFromDevice</a></td>
<td>Public slot to stop the thread.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.execute">execute</a></td>
<td>Public method to send commands to the connected device and return the result.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.executeAsync">executeAsync</a></td>
<td>Public method to execute a series of commands over a period of time without returning any result (asynchronous execution).</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.handlePreferencesChanged">handlePreferencesChanged</a></td>
<td>Public slot to handle a change of the preferences.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.isConnected">isConnected</a></td>
<td>Public method to get the connection status.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.probeDevice">probeDevice</a></td>
<td>Public method to check the device is responding.</td>
</tr>
<tr>
<td><a href="#MicroPythonDeviceInterface.write">write</a></td>
<td>Public method to write data to the connected device.</td>
</tr>
</table>
<h3>Static Methods</h3>

<table>
<tr><td>None</td></tr>
</table>

<a NAME="MicroPythonDeviceInterface.__init__" ID="MicroPythonDeviceInterface.__init__"></a>
<h4>MicroPythonDeviceInterface (Constructor)</h4>
<b>MicroPythonDeviceInterface</b>(<i>parent=None</i>)

<p>
        Constructor
</p>
<dl>

<dt><i>parent</i> (QObject)</dt>
<dd>
reference to the parent object
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__executeAsyncPaste" ID="MicroPythonDeviceInterface.__executeAsyncPaste"></a>
<h4>MicroPythonDeviceInterface.__executeAsyncPaste</h4>
<b>__executeAsyncPaste</b>(<i>commandsList</i>)

<p>
        Private method to execute a series of commands over a period of time
        without returning any result (asynchronous execution).
</p>
<dl>

<dt><i>commandsList</i> (list of str)</dt>
<dd>
list of commands to be execute on the device
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__executeAsyncRaw" ID="MicroPythonDeviceInterface.__executeAsyncRaw"></a>
<h4>MicroPythonDeviceInterface.__executeAsyncRaw</h4>
<b>__executeAsyncRaw</b>(<i>commandsList</i>)

<p>
        Private method to execute a series of commands over a period of time
        without returning any result (asynchronous execution).
</p>
<dl>

<dt><i>commandsList</i> (list of bytes)</dt>
<dd>
list of commands to be execute on the device
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__execute_paste" ID="MicroPythonDeviceInterface.__execute_paste"></a>
<h4>MicroPythonDeviceInterface.__execute_paste</h4>
<b>__execute_paste</b>(<i>commands, timeout=0</i>)

<p>
        Private method to send commands to the connected device using 'paste' mode
        and return the result.
</p>
<p>
        If no serial connection is available, empty results will be returned.
</p>
<dl>

<dt><i>commands</i> (str or list of str)</dt>
<dd>
list of commands to be executed
</dd>
<dt><i>timeout</i> (int (optional))</dt>
<dd>
per command timeout in milliseconds (0 for configured default)
            (defaults to 0)
</dd>
</dl>
<dl>
<dt>Return:</dt>
<dd>
tuple containing stdout and stderr output of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bytes, bytes)
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__execute_raw" ID="MicroPythonDeviceInterface.__execute_raw"></a>
<h4>MicroPythonDeviceInterface.__execute_raw</h4>
<b>__execute_raw</b>(<i>commands, timeout=0</i>)

<p>
        Private method to send commands to the connected device using 'raw REPL' mode
        and return the result.
</p>
<p>
        If no serial connection is available, empty results will be returned.
</p>
<dl>

<dt><i>commands</i> (str or list of str)</dt>
<dd>
list of commands to be executed
</dd>
<dt><i>timeout</i> (int (optional))</dt>
<dd>
per command timeout in milliseconds (0 for configured default)
            (defaults to 0)
</dd>
</dl>
<dl>
<dt>Return:</dt>
<dd>
tuple containing stdout and stderr output of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bytes, bytes)
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__pasteOff" ID="MicroPythonDeviceInterface.__pasteOff"></a>
<h4>MicroPythonDeviceInterface.__pasteOff</h4>
<b>__pasteOff</b>(<i></i>)

<p>
        Private method to switch 'paste' mode off.
</p>
<a NAME="MicroPythonDeviceInterface.__pasteOn" ID="MicroPythonDeviceInterface.__pasteOn"></a>
<h4>MicroPythonDeviceInterface.__pasteOn</h4>
<b>__pasteOn</b>(<i></i>)

<p>
        Private method to switch the connected device to 'paste' mode.
</p>
<p>
        Note: switching to paste mode is done with synchronous writes.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating success
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__rawOff" ID="MicroPythonDeviceInterface.__rawOff"></a>
<h4>MicroPythonDeviceInterface.__rawOff</h4>
<b>__rawOff</b>(<i></i>)

<p>
        Private method to switch 'raw' mode off.
</p>
<a NAME="MicroPythonDeviceInterface.__rawOn" ID="MicroPythonDeviceInterface.__rawOn"></a>
<h4>MicroPythonDeviceInterface.__rawOn</h4>
<b>__rawOn</b>(<i></i>)

<p>
        Private method to switch the connected device to 'raw' mode.
</p>
<p>
        Note: switching to raw mode is done with synchronous writes.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating success
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.__readSerial" ID="MicroPythonDeviceInterface.__readSerial"></a>
<h4>MicroPythonDeviceInterface.__readSerial</h4>
<b>__readSerial</b>(<i></i>)

<p>
        Private slot to read all available serial data and emit it with the
        "dataReceived" signal for further processing.
</p>
<a NAME="MicroPythonDeviceInterface.connectToDevice" ID="MicroPythonDeviceInterface.connectToDevice"></a>
<h4>MicroPythonDeviceInterface.connectToDevice</h4>
<b>connectToDevice</b>(<i>port</i>)

<p>
        Public slot to start the manager.
</p>
<dl>

<dt><i>port</i> (str)</dt>
<dd>
name of the port to be used
</dd>
</dl>
<dl>
<dt>Return:</dt>
<dd>
flag indicating success
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.disconnectFromDevice" ID="MicroPythonDeviceInterface.disconnectFromDevice"></a>
<h4>MicroPythonDeviceInterface.disconnectFromDevice</h4>
<b>disconnectFromDevice</b>(<i></i>)

<p>
        Public slot to stop the thread.
</p>
<a NAME="MicroPythonDeviceInterface.execute" ID="MicroPythonDeviceInterface.execute"></a>
<h4>MicroPythonDeviceInterface.execute</h4>
<b>execute</b>(<i>commands, *, mode="raw", timeout=0</i>)

<p>
        Public method to send commands to the connected device and return the
        result.
</p>
<p>
        If no serial connection is available, empty results will be returned.
</p>
<dl>

<dt><i>commands</i> (str or list of str)</dt>
<dd>
list of commands to be executed
</dd>
<dt><i>mode=</i> (str)</dt>
<dd>
submit mode to be used (one of 'raw' or 'paste') (defaults to
            'raw')
</dd>
<dt><i>timeout=</i> (int (optional))</dt>
<dd>
per command timeout in milliseconds (0 for configured default)
            (defaults to 0)
</dd>
</dl>
<dl>
<dt>Return:</dt>
<dd>
tuple containing stdout and stderr output of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bytes, bytes)
</dd>
</dl>
<dl>

<dt>Raises <b>ValueError</b>:</dt>
<dd>
raised in case of an unsupported submit mode
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.executeAsync" ID="MicroPythonDeviceInterface.executeAsync"></a>
<h4>MicroPythonDeviceInterface.executeAsync</h4>
<b>executeAsync</b>(<i>commandsList, submitMode</i>)

<p>
        Public method to execute a series of commands over a period of time
        without returning any result (asynchronous execution).
</p>
<dl>

<dt><i>commandsList</i> (list of str)</dt>
<dd>
list of commands to be execute on the device
</dd>
<dt><i>submitMode</i> (str (one of 'raw' or 'paste'))</dt>
<dd>
mode to be used to submit the commands
</dd>
</dl>
<dl>

<dt>Raises <b>ValueError</b>:</dt>
<dd>
raised to indicate an unknown submit mode
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.handlePreferencesChanged" ID="MicroPythonDeviceInterface.handlePreferencesChanged"></a>
<h4>MicroPythonDeviceInterface.handlePreferencesChanged</h4>
<b>handlePreferencesChanged</b>(<i></i>)

<p>
        Public slot to handle a change of the preferences.
</p>
<a NAME="MicroPythonDeviceInterface.isConnected" ID="MicroPythonDeviceInterface.isConnected"></a>
<h4>MicroPythonDeviceInterface.isConnected</h4>
<b>isConnected</b>(<i></i>)

<p>
        Public method to get the connection status.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating the connection status
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.probeDevice" ID="MicroPythonDeviceInterface.probeDevice"></a>
<h4>MicroPythonDeviceInterface.probeDevice</h4>
<b>probeDevice</b>(<i></i>)

<p>
        Public method to check the device is responding.
</p>
<p>
        If the device has not been flashed with a MicroPython formware, the
        probe will fail.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating a communicating MicroPython device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="MicroPythonDeviceInterface.write" ID="MicroPythonDeviceInterface.write"></a>
<h4>MicroPythonDeviceInterface.write</h4>
<b>write</b>(<i>data</i>)

<p>
        Public method to write data to the connected device.
</p>
<dl>

<dt><i>data</i> (bytes or bytearray)</dt>
<dd>
data to be written
</dd>
</dl>
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

eric ide

mercurial