71 @param connected connection state |
71 @param connected connection state |
72 @type bool |
72 @type bool |
73 """ |
73 """ |
74 super().setConnected(connected) |
74 super().setConnected(connected) |
75 |
75 |
76 self._deviceData["local_mip"] = False |
76 if self._deviceData: |
|
77 self._deviceData["local_mip"] = False |
77 |
78 |
78 if self.hasCircuitPython(): |
79 if self.hasCircuitPython(): |
79 self._submitMode = "paste" |
80 self._submitMode = "paste" |
80 |
81 |
81 def setButtons(self): |
82 def setButtons(self): |
279 # in maintenance mode, for MicroPython in standard mode. |
280 # in maintenance mode, for MicroPython in standard mode. |
280 if self.getDeviceType() == "bbc_microbit": |
281 if self.getDeviceType() == "bbc_microbit": |
281 # BBC micro:bit |
282 # BBC micro:bit |
282 if firmware: |
283 if firmware: |
283 deviceDirectories = FileSystemUtilities.findVolume( |
284 deviceDirectories = FileSystemUtilities.findVolume( |
284 "MAINTENANCE", findAll=True |
285 "MAINTENANCE", findAll=True, markerFile="DETAILS.TXT" |
285 ) |
286 ) |
286 else: |
287 else: |
287 deviceDirectories = FileSystemUtilities.findVolume( |
288 deviceDirectories = FileSystemUtilities.findVolume( |
288 "MICROBIT", findAll=True |
289 "MICROBIT", findAll=True, markerFile="DETAILS.TXT" |
289 ) |
290 ) |
290 else: |
291 else: |
291 # Calliope mini |
292 # Calliope mini |
292 if firmware: |
293 if firmware: |
293 deviceDirectories = FileSystemUtilities.findVolume( |
294 deviceDirectories = FileSystemUtilities.findVolume( |
294 "MAINTENANCE", findAll=True |
295 "MAINTENANCE", findAll=True, markerFile="DETAILS.TXT" |
295 ) |
296 ) |
296 else: |
297 else: |
297 deviceDirectories = FileSystemUtilities.findVolume("MINI", findAll=True) |
298 deviceDirectories = FileSystemUtilities.findVolume( |
|
299 "MINI", findAll=True, markerFile="DETAILS.TXT" |
|
300 ) |
298 if len(deviceDirectories) == 0: |
301 if len(deviceDirectories) == 0: |
299 if self.getDeviceType() == "bbc_microbit": |
302 if self.getDeviceType() == "bbc_microbit": |
300 # BBC micro:bit is not ready or not mounted |
303 # BBC micro:bit is not ready or not mounted |
301 if firmware: |
304 if firmware: |
302 EricMessageBox.critical( |
305 EricMessageBox.critical( |
966 @rtype bool |
969 @rtype bool |
967 """ |
970 """ |
968 return True |
971 return True |
969 |
972 |
970 |
973 |
|
974 def getBoardInformation(self): |
|
975 """ |
|
976 Public method to get some information data of the connected board. |
|
977 |
|
978 @return dictionary containing the determined data |
|
979 @rtype dict |
|
980 """ |
|
981 res = super().getBoardInformation() |
|
982 with contextlib.suppress(KeyError): |
|
983 if res["mc_temp_c"] is not None: |
|
984 res["mc_temp_c"] = res["mc_temp_c"] / 100 # due to integer support only |
|
985 |
|
986 return res |
|
987 |
|
988 |
971 def createDevice(microPythonWidget, deviceType, _vid, _pid, _boardName, serialNumber): |
989 def createDevice(microPythonWidget, deviceType, _vid, _pid, _boardName, serialNumber): |
972 """ |
990 """ |
973 Function to instantiate a MicroPython device object. |
991 Function to instantiate a MicroPython device object. |
974 |
992 |
975 @param microPythonWidget reference to the main MicroPython widget |
993 @param microPythonWidget reference to the main MicroPython widget |