src/eric7/MicroPython/EspDevices.py

branch
eric7
changeset 9752
2b9546c0cbd9
parent 9751
606ac0e26533
equal deleted inserted replaced
9751:606ac0e26533 9752:2b9546c0cbd9
8 boards. 8 boards.
9 """ 9 """
10 10
11 from PyQt6.QtCore import QProcess, QUrl, pyqtSlot 11 from PyQt6.QtCore import QProcess, QUrl, pyqtSlot
12 from PyQt6.QtNetwork import QNetworkRequest 12 from PyQt6.QtNetwork import QNetworkRequest
13 from PyQt6.QtWidgets import QDialog 13 from PyQt6.QtWidgets import QDialog, QMenu
14 14
15 from eric7 import Globals, Preferences 15 from eric7 import Globals, Preferences
16 from eric7.EricWidgets import EricMessageBox 16 from eric7.EricWidgets import EricMessageBox
17 from eric7.EricWidgets.EricApplication import ericApp 17 from eric7.EricWidgets.EricApplication import ericApp
18 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog 18 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
38 @param parent reference to the parent object 38 @param parent reference to the parent object
39 @type QObject 39 @type QObject
40 """ 40 """
41 super().__init__(microPythonWidget, deviceType, parent) 41 super().__init__(microPythonWidget, deviceType, parent)
42 42
43 self.__createEsp32Submenu()
44
43 def setButtons(self): 45 def setButtons(self):
44 """ 46 """
45 Public method to enable the supported action buttons. 47 Public method to enable the supported action buttons.
46 """ 48 """
47 super().setButtons() 49 super().setButtons()
116 File Manager and a reason why it cannot. 118 File Manager and a reason why it cannot.
117 @rtype tuple of (bool, str) 119 @rtype tuple of (bool, str)
118 """ 120 """
119 return True, "" 121 return True, ""
120 122
123 def __createEsp32Submenu(self):
124 """
125 Private method to create the ESP32 submenu.
126 """
127 self.__espMenu = QMenu(self.tr("ESP32 Functions"))
128
129 self.__showMpyAct = self.__espMenu.addAction(
130 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
131 )
132 self.__espMenu.addSeparator()
133 self.__eraseFlashAct = self.__espMenu.addAction(
134 self.tr("Erase Flash"), self.__eraseFlash
135 )
136 self.__flashMpyAct = self.__espMenu.addAction(
137 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
138 )
139 self.__espMenu.addSeparator()
140 self.__flashAdditionalAct = self.__espMenu.addAction(
141 self.tr("Flash Additional Firmware"), self.__flashAddons
142 )
143 self.__espMenu.addSeparator()
144 self.__backupAct = self.__espMenu.addAction(
145 self.tr("Backup Firmware"), self.__backupFlash
146 )
147 self.__restoreAct = self.__espMenu.addAction(
148 self.tr("Restore Firmware"), self.__restoreFlash
149 )
150 self.__espMenu.addSeparator()
151 self.__chipIdAct = self.__espMenu.addAction(
152 self.tr("Show Chip ID"), self.__showChipID
153 )
154 self.__flashIdAct = self.__espMenu.addAction(
155 self.tr("Show Flash ID"), self.__showFlashID
156 )
157 self.__macAddressAct = self.__espMenu.addAction(
158 self.tr("Show MAC Address"), self.__showMACAddress
159 )
160 self.__espMenu.addSeparator()
161 self.__resetAct = self.__espMenu.addAction(
162 self.tr("Reset Device"), self.__resetDevice
163 )
164 self.__espMenu.addSeparator()
165 self.__espMenu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool)
166
121 def addDeviceMenuEntries(self, menu): 167 def addDeviceMenuEntries(self, menu):
122 """ 168 """
123 Public method to add device specific entries to the given menu. 169 Public method to add device specific entries to the given menu.
124 170
125 @param menu reference to the context menu 171 @param menu reference to the context menu
126 @type QMenu 172 @type QMenu
127 """ 173 """
128 connected = self.microPython.isConnected() 174 connected = self.microPython.isConnected()
129 linkConnected = self.microPython.isLinkConnected() 175 linkConnected = self.microPython.isLinkConnected()
130 176
131 menu.addAction( 177 self.__showMpyAct.setEnabled(connected)
132 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions 178 self.__eraseFlashAct.setEnabled(not linkConnected)
133 ).setEnabled(connected) 179 self.__flashMpyAct.setEnabled(not linkConnected)
134 menu.addAction(self.tr("Erase Flash"), self.__eraseFlash).setEnabled( 180 self.__flashAdditionalAct.setEnabled(not linkConnected)
135 not linkConnected 181 self.__backupAct.setEnabled(not linkConnected)
136 ) 182 self.__restoreAct.setEnabled(not linkConnected)
137 menu.addAction( 183 self.__chipIdAct.setEnabled(not linkConnected)
138 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython 184 self.__flashIdAct.setEnabled(not linkConnected)
139 ).setEnabled(not linkConnected) 185 self.__macAddressAct.setEnabled(not linkConnected)
140 menu.addSeparator() 186 self.__resetAct.setEnabled(connected or not linkConnected)
141 menu.addAction( 187
142 self.tr("Flash Additional Firmware"), self.__flashAddons 188 menu.addMenu(self.__espMenu)
143 ).setEnabled(not linkConnected)
144 menu.addSeparator()
145 menu.addAction(self.tr("Backup Firmware"), self.__backupFlash).setEnabled(
146 not linkConnected
147 )
148 menu.addAction(self.tr("Restore Firmware"), self.__restoreFlash).setEnabled(
149 not linkConnected
150 )
151 menu.addSeparator()
152 menu.addAction(self.tr("Show Chip ID"), self.__showChipID).setEnabled(
153 not linkConnected
154 )
155 menu.addAction(self.tr("Show Flash ID"), self.__showFlashID).setEnabled(
156 not linkConnected
157 )
158 menu.addAction(self.tr("Show MAC Address"), self.__showMACAddress).setEnabled(
159 not linkConnected
160 )
161 menu.addSeparator()
162 menu.addAction(self.tr("Reset Device"), self.__resetDevice).setEnabled(
163 connected or not linkConnected
164 )
165 menu.addSeparator()
166 menu.addAction(self.tr("Install 'esptool.py'"), self.__installEspTool)
167 189
168 def hasFlashMenuEntry(self): 190 def hasFlashMenuEntry(self):
169 """ 191 """
170 Public method to check, if the device has its own flash menu entry. 192 Public method to check, if the device has its own flash menu entry.
171 193

eric ide

mercurial