eric6/MicroPython/PyBoardDevices.py

changeset 8117
aaa5e0eacd4e
parent 8096
5425a9072300
child 8143
2c730d5fd177
diff -r ef415e4efd70 -r aaa5e0eacd4e eric6/MicroPython/PyBoardDevices.py
--- a/eric6/MicroPython/PyBoardDevices.py	Fri Feb 19 17:34:33 2021 +0100
+++ b/eric6/MicroPython/PyBoardDevices.py	Sat Feb 20 11:52:49 2021 +0100
@@ -33,16 +33,19 @@
         "Pyboard-Firmware-Update"
     )
     
-    def __init__(self, microPythonWidget, parent=None):
+    def __init__(self, microPythonWidget, deviceType, parent=None):
         """
         Constructor
         
         @param microPythonWidget reference to the main MicroPython widget
         @type MicroPythonWidget
+        @param deviceType device type assigned to this device interface
+        @type str
         @param parent reference to the parent object
         @type QObject
         """
-        super(PyBoardDevice, self).__init__(microPythonWidget, parent)
+        super(PyBoardDevice, self).__init__(microPythonWidget, deviceType,
+                                            parent)
         
         self.__workspace = self.__findWorkspace()
     
@@ -225,6 +228,9 @@
         """
         connected = self.microPython.isConnected()
         
+        act = menu.addAction(self.tr("Activate Bootloader"),
+                             self.__activateBootloader)
+        act.setEnabled(connected)
         act = menu.addAction(self.tr("List DFU-capable Devices"),
                              self.__listDfuCapableDevices)
         act.setEnabled(not connected)
@@ -396,3 +402,16 @@
                     if res:
                         dlg.exec()
                         self.__showDfuDisableInstructions()
+    
+    @pyqtSlot()
+    def __activateBootloader(self):
+        """
+        Private slot to activate the bootloader and disconnect.
+        """
+        if self.microPython.isConnected():
+            self.microPython.commandsInterface().execute([
+                "import pyb",
+                "pyb.bootloader()",
+            ])
+            # simulate pressing the disconnect button
+            self.microPython.on_connectButton_clicked()

eric ide

mercurial