Skip to content
This repository has been archived by the owner on Jan 26, 2025. It is now read-only.

Commit

Permalink
feat: list serial ports
Browse files Browse the repository at this point in the history
  • Loading branch information
kmpm committed Dec 15, 2019
1 parent af18197 commit 8394559
Showing 1 changed file with 25 additions and 2 deletions.
27 changes: 25 additions & 2 deletions nodemcu_uploader/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import os
import sys
import glob
import serial
from .uploader import Uploader
from .term import terminal
from serial import VERSION as serialversion
Expand Down Expand Up @@ -95,7 +96,7 @@ def operation_download(uploader, sources, *args, **kwargs):
log.info('All done!')


def operation_list(uploader):
def operation_list_files(uploader):
"""List file on target"""
files = uploader.file_list()
for f in files:
Expand All @@ -105,7 +106,7 @@ def operation_list(uploader):
def operation_file(uploader, cmd, filename=''):
"""File operations"""
if cmd == 'list':
operation_list(uploader)
operation_list_files(uploader)
if cmd == 'do':
for path in filename:
uploader.file_do(path)
Expand All @@ -121,6 +122,14 @@ def operation_file(uploader, cmd, filename=''):
uploader.file_remove_all()


def operation_port(args):
if args.cmd == 'list':
ports = serial.tools.list_ports.comports(include_links=False)
print('device', 'vid', 'pid')
for p in ports:
print(p.device, p.vid, p.pid)


def arg_auto_int(value):
"""parsing function for integer arguments"""
return int(value, 0)
Expand Down Expand Up @@ -275,6 +284,16 @@ def main_func():
help='Run pySerials miniterm'
)

port_parser = subparsers.add_parser(
'port',
help='serial port stuff'
)

port_parser.add_argument(
'cmd',
choices=('list',)
)

args = parser.parse_args()

default_level = logging.INFO
Expand All @@ -291,6 +310,9 @@ def main_func():
# uploader can not claim the port
terminal(args.port, str(args.start_baud))
return
elif args.operation == 'port':
operation_port(args)
return

# let uploader user the default (short) timeout for establishing connection
uploader = Uploader(args.port, args.baud, start_baud=args.start_baud, autobaud_time=args.autobaud_time)
Expand Down Expand Up @@ -325,5 +347,6 @@ def main_func():
elif args.operation == 'backup':
uploader.backup(args.path)


# no uploader related commands after this point
uploader.close()

0 comments on commit 8394559

Please sign in to comment.