eric6/MicroPython/MicroPythonWidget.py

changeset 8082
2242a6a1d786
parent 8079
331e717c458e
child 8096
5425a9072300
--- 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))

eric ide

mercurial