src/eric7/MicroPython/Devices/PyBoardDevices.py

Sat, 20 Apr 2024 18:01:36 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 20 Apr 2024 18:01:36 +0200
branch
eric7
changeset 10683
779cda568acb
parent 10439
21c28b0f9e41
child 10806
2f6df822e3b9
permissions
-rw-r--r--

Changed the source code and the source code documentation to improve the indication of unused method/function arguments.

7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
10439
21c28b0f9e41 Updated copyright for 2024.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10069
diff changeset
3 # Copyright (c) 2019 - 2024 Detlev Offenbach <detlev@die-offenbachs.de>
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the device interface class for PyBoard boards.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
10 import os
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
11
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
12 from PyQt6.QtCore import QStandardPaths, QUrl, pyqtSlot
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9770
diff changeset
13 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
14 from PyQt6.QtWidgets import QMenu
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
15
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
16 from eric7 import Globals, Preferences
9473
3f23dbf37dbe Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9413
diff changeset
17 from eric7.EricWidgets import EricFileDialog, EricMessageBox
9413
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
18 from eric7.EricWidgets.EricApplication import ericApp
80c06d472826 Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9221
diff changeset
19 from eric7.EricWidgets.EricProcessDialog import EricProcessDialog
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
20 from eric7.SystemUtilities import FileSystemUtilities
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
22 from ..MicroPythonWidget import HAS_QTCHART
9756
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9752
diff changeset
23 from . import FirmwareGithubUrls
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9752
diff changeset
24 from .DeviceBase import BaseDevice
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
9756
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9752
diff changeset
27 class PyBoardDevice(BaseDevice):
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Class implementing the device for PyBoard boards.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
31
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 DeviceVolumeName = "PYBFLASH"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
33
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 FlashInstructionsURL = (
9576
be9f8e7e42e0 Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9496
diff changeset
35 "https://github.com/micropython/micropython/wiki/Pyboard-Firmware-Update"
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
37
8117
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
38 def __init__(self, microPythonWidget, deviceType, parent=None):
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 Constructor
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
41
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @param microPythonWidget reference to the main MicroPython widget
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 @type MicroPythonWidget
8117
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
44 @param deviceType device type assigned to this device interface
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
45 @type str
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @param parent reference to the parent object
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @type QObject
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 """
8220
006ee31b4835 Applied some more code simplifications suggested by the new Simplify checker (Y113: use enumerate()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
49 super().__init__(microPythonWidget, deviceType, parent)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
50
9909
439f312e9c14 Changed 'pyboard' to use 'paste' mode instead of 'raw'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9834
diff changeset
51 self._submitMode = "paste" # use 'paste' mode
439f312e9c14 Changed 'pyboard' to use 'paste' mode instead of 'raw'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9834
diff changeset
52
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
53 self.__workspace = self.__findWorkspace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
54
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
55 self.__createPyboardMenu()
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
56
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 def setButtons(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 Public method to enable the supported action buttons.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
61 super().setButtons()
9763
52f982c08301 Removed the 'Open' and 'Save' buttons from the MicroPython widget and made the repl and file manager start automatically upon connecting to the selected device.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9756
diff changeset
62
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 self.microPython.setActionButtons(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
64 run=True, repl=True, files=True, chart=HAS_QTCHART
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
65 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
66
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 def forceInterrupt(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 Public method to determine the need for an interrupt when opening the
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 serial connection.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
71
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 @return flag indicating an interrupt is needed
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 @rtype bool
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 return False
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
76
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 def deviceName(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 Public method to get the name of the device.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
80
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 @return name of the device
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 @rtype str
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 return self.tr("PyBoard")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
85
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 def canStartRepl(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 Public method to determine, if a REPL can be started.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
89
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 @return tuple containing a flag indicating it is safe to start a REPL
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 and a reason why it cannot.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @rtype tuple of (bool, str)
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 return True, ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
95
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 def canStartPlotter(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 Public method to determine, if a Plotter can be started.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
99
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 @return tuple containing a flag indicating it is safe to start a
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 Plotter and a reason why it cannot.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 @rtype tuple of (bool, str)
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 return True, ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
105
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 def canRunScript(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 Public method to determine, if a script can be executed.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
109
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @return tuple containing a flag indicating it is safe to start a
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 Plotter and a reason why it cannot.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 @rtype tuple of (bool, str)
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 return True, ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
115
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 def runScript(self, script):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 Public method to run the given Python script.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
119
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 @param script script to be executed
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 @type str
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 pythonScript = script.split("\n")
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self.sendCommands(pythonScript)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
125
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 def canStartFileManager(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 Public method to determine, if a File Manager can be started.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
129
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 @return tuple containing a flag indicating it is safe to start a
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 File Manager and a reason why it cannot.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 @rtype tuple of (bool, str)
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 return True, ""
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
135
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 def supportsLocalFileAccess(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 Public method to indicate file access via a local directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
139
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @return flag indicating file access via local directory
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 @rtype bool
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 return self.__deviceVolumeMounted()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
144
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 def __deviceVolumeMounted(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 Private method to check, if the device volume is mounted.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
148
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 @return flag indicated a mounted device
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 @rtype bool
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 """
8081
e0087e542717 PyBoardDevices: fixed a little omission.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8067
diff changeset
152 if self.__workspace and not os.path.exists(self.__workspace):
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
153 self.__workspace = "" # reset
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
154
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
155 return self.DeviceVolumeName in self.getWorkspace(silent=True)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
156
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 def getWorkspace(self, silent=False):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159 Public method to get the workspace directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
160
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 @param silent flag indicating silent operations
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 @type bool
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 @return workspace directory used for saving files
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 @rtype str
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 """
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
166 if self.__workspace:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
167 # return cached entry
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
168 return self.__workspace
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
169 else:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
170 self.__workspace = self.__findWorkspace(silent=silent)
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
171 return self.__workspace
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
172
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
173 def __findWorkspace(self, silent=False):
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
174 """
8067
a467ab075be0 MicroPython: added buttons to go to the 'home' directory (local and on device) to the MicroPython file manager and improved the workspace handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8062
diff changeset
175 Private method to find the workspace directory.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
176
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
177 @param silent flag indicating silent operations
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
178 @type bool
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
179 @return workspace directory used for saving files
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
180 @rtype str
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
181 """
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 # Attempts to find the path on the filesystem that represents the
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 # plugged in PyBoard board.
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
184 deviceDirectories = FileSystemUtilities.findVolume(
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
185 self.DeviceVolumeName, findAll=True
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
186 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
187
8062
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
188 if deviceDirectories:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
189 if len(deviceDirectories) == 1:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
190 return deviceDirectories[0]
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
191 else:
8dc5acb30a8b MicroPython: implemented code to deal with multiple devices attached to the computer.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
192 return self.selectDeviceDirectory(deviceDirectories)
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 else:
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 # return the default workspace and give the user a warning (unless
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 # silent mode is selected)
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 if not silent:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
197 EricMessageBox.warning(
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 self.microPython,
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 self.tr("Workspace Directory"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
200 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
201 "Python files for PyBoard can be edited in"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
202 " place, if the device volume is locally"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
203 " available. Such a volume was not found. In"
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
204 " place editing will not be available."
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
205 ),
8067
a467ab075be0 MicroPython: added buttons to go to the 'home' directory (local and on device) to the MicroPython file manager and improved the workspace handling.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8062
diff changeset
206 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
207
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
208 return super().getWorkspace()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
209
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 def getDocumentationUrl(self):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 Public method to get the device documentation URL.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
213
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 @return documentation URL of the device
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 @rtype str
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 return Preferences.getMicroPython("MicroPythonDocuUrl")
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
218
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
219 def getFirmwareUrl(self):
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
220 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
221 Public method to get the device firmware download URL.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
222
7328
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
223 @return firmware download URL of the device
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
224 @rtype str
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
225 """
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
226 return Preferences.getMicroPython("MicroPythonFirmwareUrl")
e2d85ef3fadb MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7327
diff changeset
227
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
228 def __createPyboardMenu(self):
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
229 """
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
230 Private method to create the pyboard submenu.
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
231 """
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
232 self.__pyboardMenu = QMenu(self.tr("PyBoard Functions"))
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
233
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
234 self.__showMpyAct = self.__pyboardMenu.addAction(
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
235 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
236 )
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
237 self.__pyboardMenu.addSeparator()
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
238 self.__bootloaderAct = self.__pyboardMenu.addAction(
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
239 self.tr("Activate Bootloader"), self.__activateBootloader
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
240 )
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
241 self.__dfuAct = self.__pyboardMenu.addAction(
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
242 self.tr("List DFU-capable Devices"), self.__listDfuCapableDevices
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
243 )
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
244 self.__pyboardMenu.addSeparator()
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
245 self.__flashMpyAct = self.__pyboardMenu.addAction(
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
246 self.tr("Flash MicroPython Firmware"), self.__flashMicroPython
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
247 )
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
248 self.__pyboardMenu.addAction(
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
249 self.tr("MicroPython Flash Instructions"), self.__showFlashInstructions
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
250 )
9927
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
251 self.__pyboardMenu.addSeparator()
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
252 self.__resetAct = self.__pyboardMenu.addAction(
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
253 self.tr("Reset Device"), self.__resetDevice
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
254 )
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
255
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
256 def addDeviceMenuEntries(self, menu):
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
257 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
258 Public method to add device specific entries to the given menu.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
259
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260 @param menu reference to the context menu
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
261 @type QMenu
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 """
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
263 connected = self.microPython.isConnected()
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
264 linkConnected = self.microPython.isLinkConnected()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
265
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
266 self.__bootloaderAct.setEnabled(connected)
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
267 self.__dfuAct.setEnabled(not linkConnected)
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
268 self.__showMpyAct.setEnabled(connected)
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
269 self.__flashMpyAct.setEnabled(not linkConnected)
9927
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
270 self.__resetAct.setEnabled(connected)
9752
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
271
2b9546c0cbd9 Moved the MicroPython board specific functions to a separate submenu.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9751
diff changeset
272 menu.addMenu(self.__pyboardMenu)
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
273
8096
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
274 def hasFlashMenuEntry(self):
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
275 """
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
276 Public method to check, if the device has its own flash menu entry.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
277
8096
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
278 @return flag indicating a specific flash menu entry
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
279 @rtype bool
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
280 """
5425a9072300 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8081
diff changeset
281 return True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
282
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
283 @pyqtSlot()
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
284 def __showFlashInstructions(self):
7295
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 """
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 Private slot to open the URL containing instructions for installing
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 MicroPython on the pyboard.
cf50045a7c0f MicroPython: added support for PyBoard.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
289 ericApp().getObject("UserInterface").launchHelpViewer(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
290 PyBoardDevice.FlashInstructionsURL
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
291 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
292
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
293 def __dfuUtilAvailable(self):
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
294 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
295 Private method to check the availability of dfu-util.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
296
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
297 @return flag indicating the availability of dfu-util
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
298 @rtype bool
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
299 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
300 available = False
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
301 program = Preferences.getMicroPython("DfuUtilPath")
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
302 if not program:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
303 program = "dfu-util"
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
304 if FileSystemUtilities.isinpath(program):
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
305 available = True
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
306 else:
9624
b47dfa7a137d Refactored the Utilities and Globals modules in order to enhance the maintainability.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9576
diff changeset
307 if FileSystemUtilities.isExecutable(program):
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
308 available = True
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
309
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
310 if not available:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
311 EricMessageBox.critical(
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
312 self.microPython,
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
313 self.tr("dfu-util not available"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
314 self.tr(
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
315 """The dfu-util firmware flashing tool"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
316 """ <b>dfu-util</b> cannot be found or is not"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
317 """ executable. Ensure it is in the search path"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
318 """ or configure it on the MicroPython"""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
319 """ configuration page."""
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
320 ),
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
321 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
322
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
323 return available
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
324
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
325 def __showDfuEnableInstructions(self, flash=True):
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
326 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
327 Private method to show some instructions to enable the DFU mode.
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
328
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
329 @param flash flag indicating to show a warning message for flashing
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
330 @type bool
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
331 @return flag indicating OK to continue or abort
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
332 @rtype bool
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
333 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
334 msg = self.tr(
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
335 "<h3>Enable DFU Mode</h3>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
336 "<p>1. Disconnect everything from your board</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
337 "<p>2. Disconnect your board</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
338 "<p>3. Connect the DFU/BOOT0 pin with a 3.3V pin</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
339 "<p>4. Re-connect your board</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
340 "<hr />"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
341 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
342
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
343 if flash:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
344 msg += self.tr(
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
345 "<p><b>Warning:</b> Make sure that all other DFU capable"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
346 " devices except your PyBoard are disconnected."
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
347 "<hr />"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
348 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
349
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
350 msg += self.tr("<p>Press <b>OK</b> to continue...</p>")
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
351 res = EricMessageBox.information(
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
352 self.microPython,
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
353 self.tr("Enable DFU mode"),
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
354 msg,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
355 EricMessageBox.Abort | EricMessageBox.Ok,
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
356 )
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
357
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
358 return res == EricMessageBox.Ok
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
359
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
360 def __showDfuDisableInstructions(self):
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
361 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
362 Private method to show some instructions to disable the DFU mode.
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
363 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
364 msg = self.tr(
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
365 "<h3>Disable DFU Mode</h3>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
366 "<p>1. Disconnect your board</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
367 "<p>2. Remove the DFU jumper</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
368 "<p>3. Re-connect your board</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
369 "<hr />"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
370 "<p>Press <b>OK</b> to continue...</p>"
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
371 )
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
372 EricMessageBox.information(self.microPython, self.tr("Disable DFU mode"), msg)
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
373
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
374 @pyqtSlot()
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
375 def __listDfuCapableDevices(self):
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
376 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
377 Private slot to list all DFU-capable devices.
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
378 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
379 if self.__dfuUtilAvailable():
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
380 ok2continue = self.__showDfuEnableInstructions(flash=False)
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
381 if ok2continue:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
382 program = Preferences.getMicroPython("DfuUtilPath")
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
383 if not program:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
384 program = "dfu-util"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
385
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
386 args = [
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
387 "--list",
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
388 ]
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
389 dlg = EricProcessDialog(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
390 self.tr("'dfu-util' Output"), self.tr("List DFU capable Devices")
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
391 )
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
392 res = dlg.startProcess(program, args)
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
393 if res:
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
394 dlg.exec()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
395
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
396 @pyqtSlot()
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
397 def __flashMicroPython(self):
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
398 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
399 Private slot to flash a MicroPython firmware.
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
400 """
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
401 if self.__dfuUtilAvailable():
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
402 ok2continue = self.__showDfuEnableInstructions()
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
403 if ok2continue:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
404 program = Preferences.getMicroPython("DfuUtilPath")
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
405 if not program:
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
406 program = "dfu-util"
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
407
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
408 downloadsPath = QStandardPaths.standardLocations(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
409 QStandardPaths.StandardLocation.DownloadLocation
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
410 )[0]
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
411 firmware = EricFileDialog.getOpenFileName(
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
412 self.microPython,
9770
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
413 self.tr("Flash MicroPython/CircuitPython Firmware"),
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
414 downloadsPath,
9770
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
415 self.tr(
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
416 "MicroPython Firmware Files (*.dfu);;"
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
417 "CircuitPython Firmware Files (*.bin);;"
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
418 "All Files (*)"
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
419 ),
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
420 )
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
421 if firmware and os.path.exists(firmware):
9770
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
422 args = ["--alt", "0"]
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
423 if firmware.endswith(".bin"):
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
424 # it's a CircuitPython firmware; give the flash address
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
425 args.extend(["--dfuse-address", "0x08000000"])
2d7a244886d1 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
426 args.extend(["--download", firmware])
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
427 dlg = EricProcessDialog(
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
428 self.tr("'dfu-util' Output"),
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
429 self.tr("Flash MicroPython Firmware"),
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
430 )
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
431 res = dlg.startProcess(program, args)
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
432 if res:
7759
51aa6c6b66f7 Changed calls to exec_() into exec() (remainder of Python2 elimination).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
433 dlg.exec()
7327
71883ddcb762 MicroPython:
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7321
diff changeset
434 self.__showDfuDisableInstructions()
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
435
8117
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
436 @pyqtSlot()
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
437 def __showFirmwareVersions(self):
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
438 """
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
439 Private slot to show the firmware version of the connected device and the
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
440 available firmware version.
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
441 """
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
442 if self.microPython.isConnected():
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
443 if self._deviceData["mpy_name"] != "micropython":
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
444 EricMessageBox.critical(
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
445 None,
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
446 self.tr("Show MicroPython Versions"),
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
447 self.tr(
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
448 """The firmware of the connected device cannot be"""
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
449 """ determined or the board does not run MicroPython."""
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
450 """ Aborting..."""
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
451 ),
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
452 )
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
453 else:
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
454 ui = ericApp().getObject("UserInterface")
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
455 request = QNetworkRequest(QUrl(FirmwareGithubUrls["micropython"]))
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
456 reply = ui.networkAccessManager().head(request)
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
457 reply.finished.connect(lambda: self.__firmwareVersionResponse(reply))
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
458
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9770
diff changeset
459 @pyqtSlot(QNetworkReply)
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
460 def __firmwareVersionResponse(self, reply):
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
461 """
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9770
diff changeset
462 Private slot handling the response of the latest version request.
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
463
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
464 @param reply reference to the reply object
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
465 @type QNetworkReply
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
466 """
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
467 latestUrl = reply.url().toString()
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
468 tag = latestUrl.rsplit("/", 1)[-1]
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
469 while tag and not tag[0].isdecimal():
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
470 # get rid of leading non-decimal characters
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
471 tag = tag[1:]
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
472 latestVersion = Globals.versionToTuple(tag)
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
473
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
474 if self._deviceData["mpy_version"] == "unknown":
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
475 currentVersionStr = self.tr("unknown")
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
476 currentVersion = (0, 0, 0)
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
477 else:
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
478 currentVersionStr = self._deviceData["mpy_version"]
9749
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
479 currentVersion = Globals.versionToTuple(currentVersionStr)
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
480
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
481 msg = self.tr(
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
482 "<h4>MicroPython Version Information</h4>"
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
483 "<table>"
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
484 "<tr><td>Installed:</td><td>{0}</td></tr>"
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
485 "<tr><td>Available:</td><td>{1}</td></tr>"
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
486 "</table>"
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
487 ).format(currentVersionStr, tag)
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
488 if currentVersion < latestVersion:
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
489 msg += self.tr("<p><b>Update available!</b></p>")
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
490
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
491 EricMessageBox.information(
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
492 None,
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
493 self.tr("MicroPython Version"),
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
494 msg,
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
495 )
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
496
5d409223cf3f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9738
diff changeset
497 @pyqtSlot()
8117
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
498 def __activateBootloader(self):
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
499 """
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
500 Private slot to activate the bootloader and disconnect.
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
501 """
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
502 if self.microPython.isConnected():
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9927
diff changeset
503 self.executeCommands(
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
504 [
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
505 "import pyb",
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
506 "pyb.bootloader()",
9834
1fdaebde6316 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9820
diff changeset
507 ],
1fdaebde6316 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9820
diff changeset
508 mode=self._submitMode,
9221
bf71ee032bb4 Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9209
diff changeset
509 )
8117
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
510 # simulate pressing the disconnect button
aaa5e0eacd4e MicroPython: changed the logic to synchronize the time because some devices don't implement long integer and failed defining the 'set_time()' function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8096
diff changeset
511 self.microPython.on_connectButton_clicked()
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
512
9927
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
513 @pyqtSlot()
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
514 def __resetDevice(self):
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
515 """
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
516 Private slot to reset the connected device.
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
517 """
9989
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9927
diff changeset
518 if self.microPython.isConnected():
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9927
diff changeset
519 self.executeCommands(
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9927
diff changeset
520 "import machine\nmachine.reset()\n", mode=self._submitMode
286c2a21f36f MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9927
diff changeset
521 )
9927
fa258d559f01 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9909
diff changeset
522
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
523 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
524 ## time related methods below
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
525 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
526
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
527 def _getSetTimeCode(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
528 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
529 Protected method to get the device code to set the time.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
530
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
531 Note: This method must be implemented in the various device specific
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
532 subclasses.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
533
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
534 @return code to be executed on the connected device to set the time
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
535 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
536 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
537 # rtc_time[0] - year 4 digit
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
538 # rtc_time[1] - month 1..12
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
539 # rtc_time[2] - day 1..31
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
540 # rtc_time[3] - weekday 1..7 1=Monday
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
541 # rtc_time[4] - hour 0..23
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
542 # rtc_time[5] - minute 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
543 # rtc_time[6] - second 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
544 # rtc_time[7] - yearday 1..366
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
545 # rtc_time[8] - isdst 0, 1, or -1
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
546
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
547 # The pyb.RTC.datetime() function takes the arguments in the
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
548 # order: (year, month, day, weekday, hour, minute, second,
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
549 # subseconds)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
550 # http://docs.micropython.org/en/latest/library/pyb.RTC.html#pyb.RTC.datetime
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
551 return """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
552 def set_time(rtc_time):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
553 import pyb
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
554 rtc = pyb.RTC()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
555 rtc.datetime(rtc_time[:7] + (0,))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
556 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
557
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
558
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
559 def createDevice(microPythonWidget, deviceType, _vid, _pid, _boardName, _serialNumber):
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
560 """
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
561 Function to instantiate a MicroPython device object.
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
562
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
563 @param microPythonWidget reference to the main MicroPython widget
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
564 @type MicroPythonWidget
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
565 @param deviceType device type assigned to this device interface
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
566 @type str
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
567 @param _vid vendor ID (unused)
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
568 @type int
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
569 @param _pid product ID (unused)
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
570 @type int
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
571 @param _boardName name of the board (unused)
9738
4ae976ee5339 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9653
diff changeset
572 @type str
10683
779cda568acb Changed the source code and the source code documentation to improve the indication of unused method/function arguments.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10439
diff changeset
573 @param _serialNumber serial number of the board (unused)
9751
606ac0e26533 Various enhancements and improvements to the MicroPython/CircuitPython related modules.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9749
diff changeset
574 @type str
9496
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
575 @return reference to the instantiated device object
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
576 @rtype PyBoardDevice
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
577 """
05017f795c24 Changed MicroPython device imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9473
diff changeset
578 return PyBoardDevice(microPythonWidget, deviceType)

eric ide

mercurial