MicroPython eric7

Wed, 15 Mar 2023 12:07:57 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 15 Mar 2023 12:07:57 +0100
branch
eric7
changeset 9898
5bfb3c70e30b
parent 9896
bef51a4fc5c5
child 9899
8d2396ffc114

MicroPython
- added a menu entry to set a CircuitPython device into 'bootloader' mode

src/eric7/Documentation/Help/source.qch file | annotate | diff | comparison | revisions
src/eric7/Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
src/eric7/Documentation/Source/eric7.MicroPython.Devices.CircuitPythonDevices.html file | annotate | diff | comparison | revisions
src/eric7/MicroPython/Devices/CircuitPythonDevices.py file | annotate | diff | comparison | revisions
Binary file src/eric7/Documentation/Help/source.qch has changed
--- a/src/eric7/Documentation/Help/source.qhp	Tue Mar 14 16:58:36 2023 +0100
+++ b/src/eric7/Documentation/Help/source.qhp	Wed Mar 15 12:07:57 2023 +0100
@@ -2843,6 +2843,7 @@
       <keyword name="CircuitPythonDevice" id="CircuitPythonDevice" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice" />
       <keyword name="CircuitPythonDevice (Constructor)" id="CircuitPythonDevice (Constructor)" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__init__" />
       <keyword name="CircuitPythonDevice.__aboutToShowLibraryMenu" id="CircuitPythonDevice.__aboutToShowLibraryMenu" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__aboutToShowLibraryMenu" />
+      <keyword name="CircuitPythonDevice.__activateBootloader" id="CircuitPythonDevice.__activateBootloader" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__activateBootloader" />
       <keyword name="CircuitPythonDevice.__cpyVersionResponse" id="CircuitPythonDevice.__cpyVersionResponse" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__cpyVersionResponse" />
       <keyword name="CircuitPythonDevice.__createCPyMenu" id="CircuitPythonDevice.__createCPyMenu" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__createCPyMenu" />
       <keyword name="CircuitPythonDevice.__createFlashMenus" id="CircuitPythonDevice.__createFlashMenus" ref="eric7.MicroPython.Devices.CircuitPythonDevices.html#CircuitPythonDevice.__createFlashMenus" />
--- a/src/eric7/Documentation/Source/eric7.MicroPython.Devices.CircuitPythonDevices.html	Tue Mar 14 16:58:36 2023 +0100
+++ b/src/eric7/Documentation/Source/eric7.MicroPython.Devices.CircuitPythonDevices.html	Wed Mar 15 12:07:57 2023 +0100
@@ -67,6 +67,10 @@
 <td>Private slot to populate the 'Library Management' menu.</td>
 </tr>
 <tr>
+<td><a href="#CircuitPythonDevice.__activateBootloader">__activateBootloader</a></td>
+<td>Private slot to switch the board into 'bootloader' mode.</td>
+</tr>
+<tr>
 <td><a href="#CircuitPythonDevice.__cpyVersionResponse">__cpyVersionResponse</a></td>
 <td>Private slot handling the response of the latest version request.</td>
 </tr>
@@ -351,6 +355,13 @@
 <p>
         Private slot to populate the 'Library Management' menu.
 </p>
+<a NAME="CircuitPythonDevice.__activateBootloader" ID="CircuitPythonDevice.__activateBootloader"></a>
+<h4>CircuitPythonDevice.__activateBootloader</h4>
+<b>__activateBootloader</b>(<i></i>)
+
+<p>
+        Private slot to switch the board into 'bootloader' mode.
+</p>
 <a NAME="CircuitPythonDevice.__cpyVersionResponse" ID="CircuitPythonDevice.__cpyVersionResponse"></a>
 <h4>CircuitPythonDevice.__cpyVersionResponse</h4>
 <b>__cpyVersionResponse</b>(<i>reply</i>)
--- a/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Tue Mar 14 16:58:36 2023 +0100
+++ b/src/eric7/MicroPython/Devices/CircuitPythonDevices.py	Wed Mar 15 12:07:57 2023 +0100
@@ -343,6 +343,9 @@
             self.tr("Show CircuitPython Versions"), self.showCircuitPythonVersions
         )
         self.__cpyMenu.addSeparator()
+        self.__bootloaderAct = self.__cpyMenu.addAction(
+            self.tr("Activate Bootloader"), self.__activateBootloader
+        )
         self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu)
         self.__cpyMenu.addSeparator()
         self.__cpyMenu.addMenu(self.__libraryMenu)
@@ -405,6 +408,7 @@
 
         self.__flashCpyAct.setEnabled(not linkConnected)
         self.__resetAct.setEnabled(connected)
+        self.__bootloaderAct.setEnabled(connected)
 
         menu.addMenu(self.__cpyMenu)
 
@@ -464,6 +468,19 @@
         dlg.exec()
 
     @pyqtSlot()
+    def __activateBootloader(self):
+        """
+        Private slot to switch the board into 'bootloader' mode.
+        """
+        if self.microPython.isConnected():
+            self.microPython.deviceInterface().execute(
+                "import microcontroller as mc\n"
+                "mc.on_next_reset(mc.RunMode.BOOTLOADER)\n"
+                "mc.reset()\n",
+                mode=self._submitMode,
+            )
+
+    @pyqtSlot()
     def __showTeensyFlashInstructions(self):
         """
         Private slot to show a message box because Teensy does not support
@@ -1512,7 +1529,6 @@
                 os.remove(filename)
 
         return True, ""
-        # TODO: not implemented yet
 
     ##################################################################
     ## Methods below implement Bluetooth related methods

eric ide

mercurial