Source code for esptest.scripts.list_ports

import argparse
import json
import sys
from dataclasses import asdict

try:
    # Run from `python -m esptest.scripts.list_ports`
    from ..devices.esp_serial import list_all_esp_ports
except ImportError:
    from esptest.devices.esp_serial import list_all_esp_ports


[docs] def run_uart_monitor() -> None: try: from esptest.tools.uart_monitor import start_monitoring except ImportError as e: print(f'import uart_monitor failed: {str(e)}`') sys.exit(1) start_monitoring()
[docs] def main() -> None: parser = argparse.ArgumentParser(description='') parser.add_argument('--monitor', action='store_true', help='run uart port monitor') parser.add_argument('--format', type=str, default='text', help='output format: text, json') args = parser.parse_args() if args.monitor: run_uart_monitor() return if args.format == 'json': data = [] for port in list_all_esp_ports(): data.append(asdict(port)) print(json.dumps(data, indent=4)) return print('All devices:') print('Device Location target version xtal mac description') for port in list_all_esp_ports(): if port.support_esptool: print( f'{port.device:16s} {port.location:12s} {port.target:8s} ' f'{port.chip_version:8s} {port.mac:20s} {port.chip_description} {str(port)}' ) else: print(f'{port.device:16s} {port.location:12s} ----- {port.serial_description} [not esp port]')
if __name__ == '__main__': main()