|
2 | 2 | # Copyright (c) 2019-2023 The Pybricks Authors |
3 | 3 |
|
4 | 4 | import asyncio |
5 | | -import hashlib |
6 | | -import json |
7 | 5 | import logging |
8 | 6 | import os |
9 | 7 | import struct |
10 | 8 | import sys |
11 | | -import zipfile |
12 | 9 | import zlib |
13 | 10 | from tempfile import NamedTemporaryFile |
14 | 11 | from typing import BinaryIO, Dict, Optional |
|
46 | 43 | unpack_pnp_id, |
47 | 44 | ) |
48 | 45 | from pybricksdev.compile import compile_file |
49 | | -from pybricksdev.connections.lego import REPLHub |
50 | 46 | from pybricksdev.dfu import flash_dfu |
51 | 47 | from pybricksdev.firmware import create_firmware_blob |
52 | 48 | from pybricksdev.flash import BootloaderConnection |
@@ -439,42 +435,7 @@ async def flash_firmware(firmware_zip: BinaryIO, new_name: Optional[str]) -> Non |
439 | 435 | hub_kind = HubKind(metadata["device-id"]) |
440 | 436 |
|
441 | 437 | if hub_kind in (HubKind.TECHNIC_SMALL, HubKind.TECHNIC_LARGE): |
442 | | - try: |
443 | | - # Connect to the hub and exit the runtime. |
444 | | - hub = REPLHub() |
445 | | - await hub.connect() |
446 | | - await hub.reset_hub() |
447 | | - |
448 | | - # Upload installation script. |
449 | | - archive = zipfile.ZipFile(firmware_zip) |
450 | | - await hub.exec_line("import uos; uos.mkdir('_firmware')") |
451 | | - await hub.upload_file( |
452 | | - "_firmware/install_pybricks.py", |
453 | | - bytearray(archive.open("install_pybricks.py").read()), |
454 | | - ) |
455 | | - |
456 | | - extended_metadata = metadata.copy() |
457 | | - |
458 | | - # Add extended metadata needed by install_pybricks.py |
459 | | - extended_metadata["firmware-sha256"] = hashlib.sha256(firmware).hexdigest() |
460 | | - |
461 | | - # Upload metadata. |
462 | | - await hub.upload_file( |
463 | | - "_firmware/firmware.metadata.json", |
464 | | - json.dumps(extended_metadata, indent=4).encode(), |
465 | | - ) |
466 | | - |
467 | | - # Upload Pybricks firmware |
468 | | - await hub.upload_file("_firmware/firmware.bin", firmware) |
469 | | - |
470 | | - # Run installation script |
471 | | - print("Installing firmware") |
472 | | - await hub.exec_line("from _firmware.install_pybricks import install") |
473 | | - await hub.exec_paste_mode("install()") |
474 | | - |
475 | | - except OSError: |
476 | | - print("Could not find hub in standard firmware mode. Trying DFU.") |
477 | | - flash_dfu(firmware, metadata) |
| 438 | + flash_dfu(firmware, metadata) |
478 | 439 | elif hub_kind in [HubKind.BOOST, HubKind.CITY, HubKind.TECHNIC]: |
479 | 440 | await flash_ble(hub_kind, firmware, metadata) |
480 | 441 | elif hub_kind == HubKind.NXT: |
|
0 commit comments