src/eric7/Documentation/Source/eric7.MicroPython.Devices.DeviceBase.html

Mon, 13 Feb 2023 17:49:52 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 13 Feb 2023 17:49:52 +0100
branch
eric7
changeset 9756
9854647c8c5c
child 9765
6378da868bb0
permissions
-rw-r--r--

Reorganized the MicroPython package.

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

<p>
Module implementing some utility functions and the MicroPythonDevice base
class.
</p>
<h3>Global Attributes</h3>

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

<table>

<tr>
<td><a href="#BaseDevice">BaseDevice</a></td>
<td>Base class for the more specific MicroPython devices.</td>
</tr>
</table>
<h3>Functions</h3>

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

<p>
    Base class for the more specific MicroPython devices.
</p>
<h3>Derived from</h3>
QObject
<h3>Class Attributes</h3>

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

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

<table>

<tr>
<td><a href="#BaseDevice.__init__">BaseDevice</a></td>
<td>Constructor</td>
</tr>
<tr>
<td><a href="#BaseDevice.addDeviceMenuEntries">addDeviceMenuEntries</a></td>
<td>Public method to add device specific entries to the given menu.</td>
</tr>
<tr>
<td><a href="#BaseDevice.canRunScript">canRunScript</a></td>
<td>Public method to determine, if a script can be executed.</td>
</tr>
<tr>
<td><a href="#BaseDevice.canStartFileManager">canStartFileManager</a></td>
<td>Public method to determine, if a File Manager can be started.</td>
</tr>
<tr>
<td><a href="#BaseDevice.canStartPlotter">canStartPlotter</a></td>
<td>Public method to determine, if a Plotter can be started.</td>
</tr>
<tr>
<td><a href="#BaseDevice.canStartRepl">canStartRepl</a></td>
<td>Public method to determine, if a REPL can be started.</td>
</tr>
<tr>
<td><a href="#BaseDevice.checkDeviceData">checkDeviceData</a></td>
<td>Public method to check the validity of the device data determined during connecting the device.</td>
</tr>
<tr>
<td><a href="#BaseDevice.deviceName">deviceName</a></td>
<td>Public method to get the name of the device.</td>
</tr>
<tr>
<td><a href="#BaseDevice.downloadFirmware">downloadFirmware</a></td>
<td>Public method to download the device firmware.</td>
</tr>
<tr>
<td><a href="#BaseDevice.forceInterrupt">forceInterrupt</a></td>
<td>Public method to determine the need for an interrupt when opening the serial connection.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getDeviceData">getDeviceData</a></td>
<td>Public method to get a copy of the determined device data.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getDeviceType">getDeviceType</a></td>
<td>Public method to get the device type.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getDocumentationUrl">getDocumentationUrl</a></td>
<td>Public method to get the device documentation URL.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getDownloadMenuEntries">getDownloadMenuEntries</a></td>
<td>Public method to retrieve the entries for the downloads menu.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getFirmwareUrl">getFirmwareUrl</a></td>
<td>Public method to get the device firmware download URL.</td>
</tr>
<tr>
<td><a href="#BaseDevice.getWorkspace">getWorkspace</a></td>
<td>Public method to get the workspace directory.</td>
</tr>
<tr>
<td><a href="#BaseDevice.handleDataFlood">handleDataFlood</a></td>
<td>Public slot handling a data floof from the device.</td>
</tr>
<tr>
<td><a href="#BaseDevice.hasDocumentationUrl">hasDocumentationUrl</a></td>
<td>Public method to check, if the device has a configured documentation URL.</td>
</tr>
<tr>
<td><a href="#BaseDevice.hasFirmwareUrl">hasFirmwareUrl</a></td>
<td>Public method to check, if the device has a configured firmware download URL.</td>
</tr>
<tr>
<td><a href="#BaseDevice.hasFlashMenuEntry">hasFlashMenuEntry</a></td>
<td>Public method to check, if the device has its own flash menu entry.</td>
</tr>
<tr>
<td><a href="#BaseDevice.hasTimeCommands">hasTimeCommands</a></td>
<td>Public method to check, if the device supports time commands.</td>
</tr>
<tr>
<td><a href="#BaseDevice.runScript">runScript</a></td>
<td>Public method to run the given Python script.</td>
</tr>
<tr>
<td><a href="#BaseDevice.selectDeviceDirectory">selectDeviceDirectory</a></td>
<td>Public method to select the device directory from a list of detected ones.</td>
</tr>
<tr>
<td><a href="#BaseDevice.sendCommands">sendCommands</a></td>
<td>Public method to send a list of commands to the device.</td>
</tr>
<tr>
<td><a href="#BaseDevice.setButtons">setButtons</a></td>
<td>Public method to enable the supported action buttons.</td>
</tr>
<tr>
<td><a href="#BaseDevice.setConnected">setConnected</a></td>
<td>Public method to set the connection state.</td>
</tr>
<tr>
<td><a href="#BaseDevice.setFileManager">setFileManager</a></td>
<td>Public method to set the File Manager status and dependent status.</td>
</tr>
<tr>
<td><a href="#BaseDevice.setPlotter">setPlotter</a></td>
<td>Public method to set the Plotter status and dependent status.</td>
</tr>
<tr>
<td><a href="#BaseDevice.setRepl">setRepl</a></td>
<td>Public method to set the REPL status and dependent status.</td>
</tr>
<tr>
<td><a href="#BaseDevice.supportsLocalFileAccess">supportsLocalFileAccess</a></td>
<td>Public method to indicate file access via a local directory.</td>
</tr>
</table>
<h3>Static Methods</h3>

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

<a NAME="BaseDevice.__init__" ID="BaseDevice.__init__"></a>
<h4>BaseDevice (Constructor)</h4>
<b>BaseDevice</b>(<i>microPythonWidget, deviceType, parent=None</i>)

<p>
        Constructor
</p>
<dl>

<dt><i>microPythonWidget</i> (MicroPythonWidget)</dt>
<dd>
reference to the main MicroPython widget
</dd>
<dt><i>deviceType</i> (str)</dt>
<dd>
device type assigned to this device interface
</dd>
<dt><i>parent</i> (QObject)</dt>
<dd>
reference to the parent object
</dd>
</dl>
<a NAME="BaseDevice.addDeviceMenuEntries" ID="BaseDevice.addDeviceMenuEntries"></a>
<h4>BaseDevice.addDeviceMenuEntries</h4>
<b>addDeviceMenuEntries</b>(<i>menu</i>)

<p>
        Public method to add device specific entries to the given menu.
</p>
<dl>

<dt><i>menu</i> (QMenu)</dt>
<dd>
reference to the context menu
</dd>
</dl>
<a NAME="BaseDevice.canRunScript" ID="BaseDevice.canRunScript"></a>
<h4>BaseDevice.canRunScript</h4>
<b>canRunScript</b>(<i></i>)

<p>
        Public method to determine, if a script can be executed.
</p>
<dl>
<dt>Return:</dt>
<dd>
tuple containing a flag indicating it is safe to start a
            Plotter and a reason why it cannot.
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bool, str)
</dd>
</dl>
<a NAME="BaseDevice.canStartFileManager" ID="BaseDevice.canStartFileManager"></a>
<h4>BaseDevice.canStartFileManager</h4>
<b>canStartFileManager</b>(<i></i>)

<p>
        Public method to determine, if a File Manager can be started.
</p>
<dl>
<dt>Return:</dt>
<dd>
tuple containing a flag indicating it is safe to start a
            File Manager and a reason why it cannot.
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bool, str)
</dd>
</dl>
<a NAME="BaseDevice.canStartPlotter" ID="BaseDevice.canStartPlotter"></a>
<h4>BaseDevice.canStartPlotter</h4>
<b>canStartPlotter</b>(<i></i>)

<p>
        Public method to determine, if a Plotter can be started.
</p>
<dl>
<dt>Return:</dt>
<dd>
tuple containing a flag indicating it is safe to start a
            Plotter and a reason why it cannot.
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bool, str)
</dd>
</dl>
<a NAME="BaseDevice.canStartRepl" ID="BaseDevice.canStartRepl"></a>
<h4>BaseDevice.canStartRepl</h4>
<b>canStartRepl</b>(<i></i>)

<p>
        Public method to determine, if a REPL can be started.
</p>
<dl>
<dt>Return:</dt>
<dd>
tuple containing a flag indicating it is safe to start a REPL
            and a reason why it cannot.
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
tuple of (bool, str)
</dd>
</dl>
<a NAME="BaseDevice.checkDeviceData" ID="BaseDevice.checkDeviceData"></a>
<h4>BaseDevice.checkDeviceData</h4>
<b>checkDeviceData</b>(<i></i>)

<p>
        Public method to check the validity of the device data determined during
        connecting the device.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating valid device data
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.deviceName" ID="BaseDevice.deviceName"></a>
<h4>BaseDevice.deviceName</h4>
<b>deviceName</b>(<i></i>)

<p>
        Public method to get the name of the device.
</p>
<dl>
<dt>Return:</dt>
<dd>
name of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.downloadFirmware" ID="BaseDevice.downloadFirmware"></a>
<h4>BaseDevice.downloadFirmware</h4>
<b>downloadFirmware</b>(<i></i>)

<p>
        Public method to download the device firmware.
</p>
<a NAME="BaseDevice.forceInterrupt" ID="BaseDevice.forceInterrupt"></a>
<h4>BaseDevice.forceInterrupt</h4>
<b>forceInterrupt</b>(<i></i>)

<p>
        Public method to determine the need for an interrupt when opening the
        serial connection.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating an interrupt is needed
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.getDeviceData" ID="BaseDevice.getDeviceData"></a>
<h4>BaseDevice.getDeviceData</h4>
<b>getDeviceData</b>(<i></i>)

<p>
        Public method to get a copy of the determined device data.
</p>
<dl>
<dt>Return:</dt>
<dd>
dictionary containing the essential device data
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
dict
</dd>
</dl>
<a NAME="BaseDevice.getDeviceType" ID="BaseDevice.getDeviceType"></a>
<h4>BaseDevice.getDeviceType</h4>
<b>getDeviceType</b>(<i></i>)

<p>
        Public method to get the device type.
</p>
<dl>
<dt>Return:</dt>
<dd>
type of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.getDocumentationUrl" ID="BaseDevice.getDocumentationUrl"></a>
<h4>BaseDevice.getDocumentationUrl</h4>
<b>getDocumentationUrl</b>(<i></i>)

<p>
        Public method to get the device documentation URL.
</p>
<dl>
<dt>Return:</dt>
<dd>
documentation URL of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.getDownloadMenuEntries" ID="BaseDevice.getDownloadMenuEntries"></a>
<h4>BaseDevice.getDownloadMenuEntries</h4>
<b>getDownloadMenuEntries</b>(<i></i>)

<p>
        Public method to retrieve the entries for the downloads menu.
</p>
<dl>
<dt>Return:</dt>
<dd>
list of tuples with menu text and URL to be opened for each
            entry
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
list of tuple of (str, str)
</dd>
</dl>
<a NAME="BaseDevice.getFirmwareUrl" ID="BaseDevice.getFirmwareUrl"></a>
<h4>BaseDevice.getFirmwareUrl</h4>
<b>getFirmwareUrl</b>(<i></i>)

<p>
        Public method to get the device firmware download URL.
</p>
<dl>
<dt>Return:</dt>
<dd>
firmware download URL of the device
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.getWorkspace" ID="BaseDevice.getWorkspace"></a>
<h4>BaseDevice.getWorkspace</h4>
<b>getWorkspace</b>(<i></i>)

<p>
        Public method to get the workspace directory.
</p>
<dl>
<dt>Return:</dt>
<dd>
workspace directory used for saving files
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.handleDataFlood" ID="BaseDevice.handleDataFlood"></a>
<h4>BaseDevice.handleDataFlood</h4>
<b>handleDataFlood</b>(<i></i>)

<p>
        Public slot handling a data floof from the device.
</p>
<a NAME="BaseDevice.hasDocumentationUrl" ID="BaseDevice.hasDocumentationUrl"></a>
<h4>BaseDevice.hasDocumentationUrl</h4>
<b>hasDocumentationUrl</b>(<i></i>)

<p>
        Public method to check, if the device has a configured documentation
        URL.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating a configured documentation URL
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.hasFirmwareUrl" ID="BaseDevice.hasFirmwareUrl"></a>
<h4>BaseDevice.hasFirmwareUrl</h4>
<b>hasFirmwareUrl</b>(<i></i>)

<p>
        Public method to check, if the device has a configured firmware
        download URL.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating a configured firmware download URL
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.hasFlashMenuEntry" ID="BaseDevice.hasFlashMenuEntry"></a>
<h4>BaseDevice.hasFlashMenuEntry</h4>
<b>hasFlashMenuEntry</b>(<i></i>)

<p>
        Public method to check, if the device has its own flash menu entry.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating a specific flash menu entry
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.hasTimeCommands" ID="BaseDevice.hasTimeCommands"></a>
<h4>BaseDevice.hasTimeCommands</h4>
<b>hasTimeCommands</b>(<i></i>)

<p>
        Public method to check, if the device supports time commands.
</p>
<p>
        The default returns True.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating support for time commands
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<a NAME="BaseDevice.runScript" ID="BaseDevice.runScript"></a>
<h4>BaseDevice.runScript</h4>
<b>runScript</b>(<i>script</i>)

<p>
        Public method to run the given Python script.
</p>
<dl>

<dt><i>script</i> (str)</dt>
<dd>
script to be executed
</dd>
</dl>
<a NAME="BaseDevice.selectDeviceDirectory" ID="BaseDevice.selectDeviceDirectory"></a>
<h4>BaseDevice.selectDeviceDirectory</h4>
<b>selectDeviceDirectory</b>(<i>deviceDirectories</i>)

<p>
        Public method to select the device directory from a list of detected
        ones.
</p>
<dl>

<dt><i>deviceDirectories</i> (list of str)</dt>
<dd>
list of directories to select from
</dd>
</dl>
<dl>
<dt>Return:</dt>
<dd>
selected directory or an empty string
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
str
</dd>
</dl>
<a NAME="BaseDevice.sendCommands" ID="BaseDevice.sendCommands"></a>
<h4>BaseDevice.sendCommands</h4>
<b>sendCommands</b>(<i>commandsList</i>)

<p>
        Public method to send a list of commands to the device.
</p>
<dl>

<dt><i>commandsList</i> (list of str)</dt>
<dd>
list of commands to be sent to the device
</dd>
</dl>
<a NAME="BaseDevice.setButtons" ID="BaseDevice.setButtons"></a>
<h4>BaseDevice.setButtons</h4>
<b>setButtons</b>(<i></i>)

<p>
        Public method to enable the supported action buttons.
</p>
<a NAME="BaseDevice.setConnected" ID="BaseDevice.setConnected"></a>
<h4>BaseDevice.setConnected</h4>
<b>setConnected</b>(<i>connected</i>)

<p>
        Public method to set the connection state.
</p>
<p>
        Note: This method can be overwritten to perform actions upon connect
        or disconnect of the device.
</p>
<dl>

<dt><i>connected</i> (bool)</dt>
<dd>
connection state
</dd>
</dl>
<a NAME="BaseDevice.setFileManager" ID="BaseDevice.setFileManager"></a>
<h4>BaseDevice.setFileManager</h4>
<b>setFileManager</b>(<i>on</i>)

<p>
        Public method to set the File Manager status and dependent status.
</p>
<dl>

<dt><i>on</i> (bool)</dt>
<dd>
flag indicating the active status
</dd>
</dl>
<a NAME="BaseDevice.setPlotter" ID="BaseDevice.setPlotter"></a>
<h4>BaseDevice.setPlotter</h4>
<b>setPlotter</b>(<i>on</i>)

<p>
        Public method to set the Plotter status and dependent status.
</p>
<dl>

<dt><i>on</i> (bool)</dt>
<dd>
flag indicating the active status
</dd>
</dl>
<a NAME="BaseDevice.setRepl" ID="BaseDevice.setRepl"></a>
<h4>BaseDevice.setRepl</h4>
<b>setRepl</b>(<i>on</i>)

<p>
        Public method to set the REPL status and dependent status.
</p>
<dl>

<dt><i>on</i> (bool)</dt>
<dd>
flag indicating the active status
</dd>
</dl>
<a NAME="BaseDevice.supportsLocalFileAccess" ID="BaseDevice.supportsLocalFileAccess"></a>
<h4>BaseDevice.supportsLocalFileAccess</h4>
<b>supportsLocalFileAccess</b>(<i></i>)

<p>
        Public method to indicate file access via a local directory.
</p>
<dl>
<dt>Return:</dt>
<dd>
flag indicating file access via local directory
</dd>
</dl>
<dl>
<dt>Return Type:</dt>
<dd>
bool
</dd>
</dl>
<div align="right"><a href="#top">Up</a></div>
<hr />
</body></html>

eric ide

mercurial