src/eric7/MicroPython/Devices/TeensyDevices.py

Wed, 01 Mar 2023 19:53:49 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 01 Mar 2023 19:53:49 +0100
branch
mpy_network
changeset 9834
1fdaebde6316
parent 9820
67597e003373
child 9927
fa258d559f01
permissions
-rw-r--r--

MicroPython
- corrected some execute() calls

9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
3 # Copyright (c) 2023 Detlev Offenbach <detlev@die-offenbachs.de>
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing the device interface class for Teensy boards with MicroPython.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
10 from PyQt6.QtCore import QCoreApplication, QProcess, QUrl, pyqtSlot
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
11 from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt6.QtWidgets import QMenu
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14 from eric7 import Globals, Preferences
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from eric7.EricWidgets import EricMessageBox
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from eric7.EricWidgets.EricApplication import ericApp
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
18 from ..MicroPythonWidget import HAS_QTCHART
9756
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9755
diff changeset
19 from . import FirmwareGithubUrls
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9755
diff changeset
20 from .DeviceBase import BaseDevice
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
9756
9854647c8c5c Reorganized the MicroPython package.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9755
diff changeset
23 class TeensyDevice(BaseDevice):
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Class implementing the device for Teensy boards with MicroPython.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 def __init__(self, microPythonWidget, deviceType, parent=None):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Constructor
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @param microPythonWidget reference to the main MicroPython widget
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @type MicroPythonWidget
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @param deviceType device type assigned to this device interface
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @type str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @param parent reference to the parent object
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @type QObject
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 super().__init__(microPythonWidget, deviceType, parent)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__createTeensyMenu()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 def setButtons(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 Public method to enable the supported action buttons.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 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
48
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 self.microPython.setActionButtons(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 run=True, repl=True, files=True, chart=HAS_QTCHART
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 def forceInterrupt(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 Public method to determine the need for an interrupt when opening the
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 serial connection.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 @return flag indicating an interrupt is needed
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @rtype bool
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 return False
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 def deviceName(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 Public method to get the name of the device.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @return name of the device
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @rtype str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 return self.tr("Teensy")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 def canStartRepl(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 Public method to determine, if a REPL can be started.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 @return tuple containing a flag indicating it is safe to start a REPL
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 and a reason why it cannot.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 @rtype tuple of (bool, str)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 return True, ""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 def canStartPlotter(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 Public method to determine, if a Plotter can be started.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 @return tuple containing a flag indicating it is safe to start a
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 Plotter and a reason why it cannot.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @rtype tuple of (bool, str)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 return True, ""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def canRunScript(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 Public method to determine, if a script can be executed.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @return tuple containing a flag indicating it is safe to start a
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 Plotter and a reason why it cannot.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 @rtype tuple of (bool, str)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 return True, ""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 def runScript(self, script):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 Public method to run the given Python script.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 @param script script to be executed
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @type str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 pythonScript = script.split("\n")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.sendCommands(pythonScript)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 def canStartFileManager(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 Public method to determine, if a File Manager can be started.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 @return tuple containing a flag indicating it is safe to start a
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 File Manager and a reason why it cannot.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 @rtype tuple of (bool, str)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 return True, ""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 def getDocumentationUrl(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 Public method to get the device documentation URL.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 @return documentation URL of the device
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 @rtype str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 return Preferences.getMicroPython("MicroPythonDocuUrl")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 def getFirmwareUrl(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 Public method to get the device firmware download URL.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 @return firmware download URL of the device
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136 @rtype str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 return Preferences.getMicroPython("MicroPythonFirmwareUrl")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 def __createTeensyMenu(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 Private method to create the microbit submenu.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 self.__teensyMenu = QMenu(self.tr("Teensy Functions"))
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 self.__showMpyAct = self.__teensyMenu.addAction(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 self.tr("Show MicroPython Versions"), self.__showFirmwareVersions
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 self.__teensyMenu.addSeparator()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.__teensyMenu.addAction(
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
151 self.tr("MicroPython Flash Instructions"), showTeensyFlashInstructions
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 self.__flashMpyAct = self.__teensyMenu.addAction(
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
154 self.tr("Flash MicroPython Firmware"), startTeensyLoader
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 self.__flashMpyAct.setToolTip(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 self.tr("Start the 'Teensy Loader' application to flash the Teensy device.")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
158 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
159
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 def addDeviceMenuEntries(self, menu):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 Public method to add device specific entries to the given menu.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 @param menu reference to the context menu
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165 @type QMenu
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
167 connected = self.microPython.isConnected()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
168 linkConnected = self.microPython.isLinkConnected()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 self.__showMpyAct.setEnabled(connected)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.__flashMpyAct.setEnabled(not linkConnected)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 menu.addMenu(self.__teensyMenu)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 @pyqtSlot()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 def __showFirmwareVersions(self):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 Private slot to show the firmware version of the connected device and the
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 available firmware version.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 if self.microPython.isConnected():
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182 if self._deviceData["mpy_name"] != "micropython":
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
183 EricMessageBox.critical(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 None,
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
185 self.tr("Show MicroPython Versions"),
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186 self.tr(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 """The firmware of the connected device cannot be"""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 """ determined or the board does not run MicroPython."""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 """ Aborting..."""
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
190 ),
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
191 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 else:
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193 ui = ericApp().getObject("UserInterface")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 request = QNetworkRequest(QUrl(FirmwareGithubUrls["micropython"]))
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 reply = ui.networkAccessManager().head(request)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 reply.finished.connect(lambda: self.__firmwareVersionResponse(reply))
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
198 @pyqtSlot(QNetworkReply)
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 def __firmwareVersionResponse(self, reply):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 """
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
201 Private slot handling the response of the latest version request.
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203 @param reply reference to the reply object
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 @type QNetworkReply
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
206 latestUrl = reply.url().toString()
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
207 tag = latestUrl.rsplit("/", 1)[-1]
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 while tag and not tag[0].isdecimal():
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209 # get rid of leading non-decimal characters
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 tag = tag[1:]
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 latestVersion = Globals.versionToTuple(tag)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 if self._deviceData["mpy_version"] == "unknown":
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
214 currentVersionStr = self.tr("unknown")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
215 currentVersion = (0, 0, 0)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 else:
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 currentVersionStr = self._deviceData["mpy_version"]
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218 currentVersion = Globals.versionToTuple(currentVersionStr)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
219
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
220 msg = self.tr(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 "<h4>MicroPython Version Information</h4>"
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 "<table>"
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223 "<tr><td>Installed:</td><td>{0}</td></tr>"
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 "<tr><td>Available:</td><td>{1}</td></tr>"
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 "</table>"
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226 ).format(currentVersionStr, tag)
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 if currentVersion < latestVersion:
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
228 msg += self.tr("<p><b>Update available!</b></p>")
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
229
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
230 EricMessageBox.information(
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
231 None,
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
232 self.tr("MicroPython Version"),
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 msg,
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 )
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
9765
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
236 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
237 ## time related methods below
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
238 ##################################################################
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
239
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
240 def _getSetTimeCode(self):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
241 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
242 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
243
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
244 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
245 subclasses.
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
246
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
247 @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
248 @rtype str
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
249 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
250 # rtc_time[0] - year 4 digit
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
251 # rtc_time[1] - month 1..12
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
252 # rtc_time[2] - day 1..31
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
253 # 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
254 # rtc_time[4] - hour 0..23
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
255 # rtc_time[5] - minute 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
256 # rtc_time[6] - second 0..59
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
257 # rtc_time[7] - yearday 1..366
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
258 # 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
259
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
260 # The machine.RTC.init() function takes the arguments in the
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
261 # 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
262 # subseconds)
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
263 # https://docs.micropython.org/en/latest/library/machine.RTC.html#machine-rtc
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
264 return """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
265 def set_time(rtc_time):
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
266 import machine
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
267 rtc = machine.RTC()
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
268 rtc.init(rtc_time[:7] + (0,))
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
269 """
6378da868bb0 Reorganized the MicroPython code even more.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9763
diff changeset
270
9755
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
271
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
272 def createDevice(microPythonWidget, deviceType, vid, pid, boardName, serialNumber):
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
273 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
274 Function to instantiate a MicroPython device object.
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
275
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
276 @param microPythonWidget reference to the main MicroPython widget
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
277 @type MicroPythonWidget
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
278 @param deviceType device type assigned to this device interface
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
279 @type str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
280 @param vid vendor ID
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 @type int
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
282 @param pid product ID
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
283 @type int
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
284 @param boardName name of the board
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
285 @type str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
286 @param serialNumber serial number of the board
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
287 @type str
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
288 @return reference to the instantiated device object
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
289 @rtype PyBoardDevice
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
290 """
1a09700229e7 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
291 return TeensyDevice(microPythonWidget, deviceType)
9820
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
292
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
293
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
294 @pyqtSlot()
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
295 def showTeensyFlashInstructions():
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
296 """
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
297 Slot to show a message box with instruction to flash the Teensy.
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
298 """
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
299 EricMessageBox.information(
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
300 None,
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
301 QCoreApplication.translate("TeensyDevice", "Flash MicroPython Firmware"),
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
302 QCoreApplication.translate(
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
303 "TeensyDevice",
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
304 """<p>Teensy 4.0 and Teensy 4.1 are flashed using the 'Teensy Loader'"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
305 """ application. Make sure you downloaded the MicroPython or"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
306 """ CircuitPython .hex file.</p>"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
307 """<p>See <a href="{0}">the PJRC Teensy web site</a>"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
308 """ for details.</p>""",
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
309 ).format("https://www.pjrc.com/teensy/loader.html"),
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
310 )
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
311
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
312
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
313 @pyqtSlot()
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
314 def startTeensyLoader():
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
315 """
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
316 Slot to start the 'Teensy Loader' application.
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
317
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
318 Note: The application must be accessible via the application search path.
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
319 """
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
320 ok, _ = QProcess.startDetached("teensy")
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
321 if not ok:
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
322 EricMessageBox.warning(
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
323 None,
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
324 QCoreApplication.translate("TeensyDevice", "Start 'Teensy Loader'"),
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
325 QCoreApplication.translate(
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
326 "TeensyDevice",
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
327 """<p>The 'Teensy Loader' application <b>teensy</b> could not"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
328 """ be started. Ensure it is in the application search path or"""
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
329 """ start it manually.</p>""",
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
330 ),
67597e003373 MicroPython
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 9765
diff changeset
331 )

eric ide

mercurial