src/eric7/MicroPython/Devices/CircuitPythonDevices.py

branch
eric7
changeset 9898
5bfb3c70e30b
parent 9885
05cbf70e8f10
child 9902
a3136eb28587
equal deleted inserted replaced
9896:bef51a4fc5c5 9898:5bfb3c70e30b
341 self.__cpyMenu = QMenu(self.tr("CircuitPython Functions")) 341 self.__cpyMenu = QMenu(self.tr("CircuitPython Functions"))
342 self.__cpyMenu.addAction( 342 self.__cpyMenu.addAction(
343 self.tr("Show CircuitPython Versions"), self.showCircuitPythonVersions 343 self.tr("Show CircuitPython Versions"), self.showCircuitPythonVersions
344 ) 344 )
345 self.__cpyMenu.addSeparator() 345 self.__cpyMenu.addSeparator()
346 self.__bootloaderAct = self.__cpyMenu.addAction(
347 self.tr("Activate Bootloader"), self.__activateBootloader
348 )
346 self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu) 349 self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu)
347 self.__cpyMenu.addSeparator() 350 self.__cpyMenu.addSeparator()
348 self.__cpyMenu.addMenu(self.__libraryMenu) 351 self.__cpyMenu.addMenu(self.__libraryMenu)
349 self.__cpyMenu.addSeparator() 352 self.__cpyMenu.addSeparator()
350 self.__resetAct = self.__cpyMenu.addAction( 353 self.__resetAct = self.__cpyMenu.addAction(
403 connected = self.microPython.isConnected() 406 connected = self.microPython.isConnected()
404 linkConnected = self.microPython.isLinkConnected() 407 linkConnected = self.microPython.isLinkConnected()
405 408
406 self.__flashCpyAct.setEnabled(not linkConnected) 409 self.__flashCpyAct.setEnabled(not linkConnected)
407 self.__resetAct.setEnabled(connected) 410 self.__resetAct.setEnabled(connected)
411 self.__bootloaderAct.setEnabled(connected)
408 412
409 menu.addMenu(self.__cpyMenu) 413 menu.addMenu(self.__cpyMenu)
410 414
411 @pyqtSlot() 415 @pyqtSlot()
412 def __aboutToShowLibraryMenu(self): 416 def __aboutToShowLibraryMenu(self):
460 """ 464 """
461 from ..UF2FlashDialog import UF2FlashDialog 465 from ..UF2FlashDialog import UF2FlashDialog
462 466
463 dlg = UF2FlashDialog(boardType="circuitpython") 467 dlg = UF2FlashDialog(boardType="circuitpython")
464 dlg.exec() 468 dlg.exec()
469
470 @pyqtSlot()
471 def __activateBootloader(self):
472 """
473 Private slot to switch the board into 'bootloader' mode.
474 """
475 if self.microPython.isConnected():
476 self.microPython.deviceInterface().execute(
477 "import microcontroller as mc\n"
478 "mc.on_next_reset(mc.RunMode.BOOTLOADER)\n"
479 "mc.reset()\n",
480 mode=self._submitMode,
481 )
465 482
466 @pyqtSlot() 483 @pyqtSlot()
467 def __showTeensyFlashInstructions(self): 484 def __showTeensyFlashInstructions(self):
468 """ 485 """
469 Private slot to show a message box because Teensy does not support 486 Private slot to show a message box because Teensy does not support
1510 filename = os.path.join(workspace, name) 1527 filename = os.path.join(workspace, name)
1511 if os.path.exists(filename): 1528 if os.path.exists(filename):
1512 os.remove(filename) 1529 os.remove(filename)
1513 1530
1514 return True, "" 1531 return True, ""
1515 # TODO: not implemented yet
1516 1532
1517 ################################################################## 1533 ##################################################################
1518 ## Methods below implement Bluetooth related methods 1534 ## Methods below implement Bluetooth related methods
1519 ################################################################## 1535 ##################################################################
1520 1536

eric ide

mercurial