344 ) |
344 ) |
345 self.__cpyMenu.addSeparator() |
345 self.__cpyMenu.addSeparator() |
346 self.__bootloaderAct = self.__cpyMenu.addAction( |
346 self.__bootloaderAct = self.__cpyMenu.addAction( |
347 self.tr("Activate Bootloader"), self.__activateBootloader |
347 self.tr("Activate Bootloader"), self.__activateBootloader |
348 ) |
348 ) |
|
349 self.__uf2Act = self.__cpyMenu.addAction( |
|
350 self.tr("Activate UF2 Mode"), self.__activateUF2Boot |
|
351 ) |
349 self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu) |
352 self.__flashCpyAct = self.__cpyMenu.addMenu(self.__flashMenu) |
350 self.__cpyMenu.addSeparator() |
353 self.__cpyMenu.addSeparator() |
351 self.__cpyMenu.addMenu(self.__libraryMenu) |
354 self.__cpyMenu.addMenu(self.__libraryMenu) |
352 self.__cpyMenu.addSeparator() |
355 self.__cpyMenu.addSeparator() |
353 self.__resetAct = self.__cpyMenu.addAction( |
356 self.__resetAct = self.__cpyMenu.addAction( |
407 linkConnected = self.microPython.isLinkConnected() |
410 linkConnected = self.microPython.isLinkConnected() |
408 |
411 |
409 self.__flashCpyAct.setEnabled(not linkConnected) |
412 self.__flashCpyAct.setEnabled(not linkConnected) |
410 self.__resetAct.setEnabled(connected) |
413 self.__resetAct.setEnabled(connected) |
411 self.__bootloaderAct.setEnabled(connected) |
414 self.__bootloaderAct.setEnabled(connected) |
|
415 self.__uf2Act.setEnabled(connected) |
412 |
416 |
413 menu.addMenu(self.__cpyMenu) |
417 menu.addMenu(self.__cpyMenu) |
414 |
418 |
415 @pyqtSlot() |
419 @pyqtSlot() |
416 def __aboutToShowLibraryMenu(self): |
420 def __aboutToShowLibraryMenu(self): |
474 """ |
478 """ |
475 if self.microPython.isConnected(): |
479 if self.microPython.isConnected(): |
476 self.microPython.deviceInterface().execute( |
480 self.microPython.deviceInterface().execute( |
477 "import microcontroller as mc\n" |
481 "import microcontroller as mc\n" |
478 "mc.on_next_reset(mc.RunMode.BOOTLOADER)\n" |
482 "mc.on_next_reset(mc.RunMode.BOOTLOADER)\n" |
|
483 "mc.reset()\n", |
|
484 mode=self._submitMode, |
|
485 ) |
|
486 |
|
487 @pyqtSlot() |
|
488 def __activateUF2Boot(self): |
|
489 """ |
|
490 Private slot to switch the board into 'UF2 Boot' mode. |
|
491 """ |
|
492 if self.microPython.isConnected(): |
|
493 self.microPython.deviceInterface().execute( |
|
494 "import microcontroller as mc\n" |
|
495 "mc.on_next_reset(mc.RunMode.UF2)\n" |
479 "mc.reset()\n", |
496 "mc.reset()\n", |
480 mode=self._submitMode, |
497 mode=self._submitMode, |
481 ) |
498 ) |
482 |
499 |
483 @pyqtSlot() |
500 @pyqtSlot() |