--- a/eric6/MicroPython/MicroPythonWidget.py Sat Feb 06 19:18:22 2021 +0100 +++ b/eric6/MicroPython/MicroPythonWidget.py Sat Feb 06 19:22:22 2021 +0100 @@ -178,6 +178,8 @@ } +# TODO: extract UF2 flashing support into a general MPy functionality with own +# vid/pid list class MicroPythonWidget(QWidget, Ui_MicroPythonWidget): """ Class implementing the MicroPython REPL widget. @@ -191,6 +193,8 @@ DeviceTypeRole = Qt.UserRole DeviceBoardRole = Qt.UserRole + 1 DevicePortRole = Qt.UserRole + 2 + DeviceVidRole = Qt.UserRole + 3 + DevicePidRole = Qt.UserRole + 4 dataReceived = pyqtSignal(bytes) @@ -304,9 +308,8 @@ self.deviceInfoLabel.setText( self.tr("%n supported device(s) detected.", "", len(devices))) - for index, (boardType, boardName, description, portName) in ( - enumerate(sorted(devices), 1) - ): + for index, (boardType, boardName, description, portName, + vid, pid) in enumerate(sorted(devices), 1): self.deviceTypeComboBox.addItem( self.tr("{0} - {1} ({2})", "board name, description, port name") @@ -318,6 +321,10 @@ index, boardName, self.DeviceBoardRole) self.deviceTypeComboBox.setItemData( index, portName, self.DevicePortRole) + self.deviceTypeComboBox.setItemData( + index, vid, self.DeviceVidRole) + self.deviceTypeComboBox.setItemData( + index, pid, self.DevicePidRole) else: self.deviceInfoLabel.setText( @@ -435,7 +442,13 @@ self.deviceIconLabel.setPixmap(MicroPythonDevices.getDeviceIcon( deviceType, False)) - self.__device = MicroPythonDevices.getDevice(deviceType, self) + vid = self.deviceTypeComboBox.itemData( + index, self.DeviceVidRole) + pid = self.deviceTypeComboBox.itemData( + index, self.DevicePidRole) + + self.__device = MicroPythonDevices.getDevice(deviceType, self, + vid, pid) self.__device.setButtons() self.connectButton.setEnabled(bool(deviceType))