miniterm: cleanup, defaults changed from globals to paramters of main
diff --git a/serial/tools/miniterm.py b/serial/tools/miniterm.py
index e6af966..3e66504 100644
--- a/serial/tools/miniterm.py
+++ b/serial/tools/miniterm.py
@@ -14,13 +14,9 @@
import os
import sys
import threading
-try:
- from serial.tools.list_ports import comports
-except ImportError:
- comports = None
import serial
-
+from serial.tools.list_ports import comports
try:
raw_input
@@ -28,13 +24,6 @@
raw_input = input # in python3 it's "raw"
unichr = chr
-# globals: can be used to override then call .main() to customize from an other
-# script
-DEFAULT_PORT = None
-DEFAULT_BAUDRATE = 9600
-DEFAULT_RTS = None
-DEFAULT_DTR = None
-
def key_description(character):
"""generate a readable description for a key"""
@@ -287,8 +276,8 @@
"""Start reader thread"""
self._reader_alive = True
# start serial->console thread
- self.receiver_thread = threading.Thread(target=self.reader)
- self.receiver_thread.setDaemon(True)
+ self.receiver_thread = threading.Thread(target=self.reader, name='rx')
+ self.receiver_thread.daemon = True
self.receiver_thread.start()
def _stop_reader(self):
@@ -301,8 +290,8 @@
self.alive = True
self._start_reader()
# enter console->serial loop
- self.transmitter_thread = threading.Thread(target=self.writer)
- self.transmitter_thread.setDaemon(True)
+ self.transmitter_thread = threading.Thread(target=self.writer, name='tx')
+ self.transmitter_thread.daemon = True
self.transmitter_thread.start()
self.console.setup()
@@ -328,7 +317,7 @@
('active' if self.serial.getRI() else 'inactive'),
('active' if self.serial.getCD() else 'inactive')))
except serial.SerialException:
- # on RFC 2217 ports, it can happen to no modem state notification was
+ # on RFC 2217 ports, it can happen if no modem state notification was
# yet received. ignore this error.
pass
sys.stderr.write('--- software flow control: {}\n'.format('active' if self.serial.xonxoff else 'inactive'))
@@ -404,7 +393,8 @@
def handle_menu_key(self, c):
"""Implement a simple menu / settings"""
- if c == self.menu_character or c == self.exit_character: # Menu character again/exit char -> send itself
+ if c == self.menu_character or c == self.exit_character:
+ # Menu/exit character again -> send itself
b = codecs.encode(
c,
self.output_encoding,
@@ -539,8 +529,7 @@
sys.stderr.write('--- unknown menu character {} --\n'.format(key_description(c)))
def get_help_text(self):
- # help text, starts with blank line! it's a function so that the current values
- # for the shortcut keys is used and not the value at program start
+ # help text, starts with blank line!
return """
--- pySerial ({version}) - miniterm - help
---
@@ -555,7 +544,7 @@
--- {rts:7} RTS {echo:7} local echo
--- {dtr:7} DTR {brk:7} BREAK
---
---- Port settings {menu} followed by the following):
+--- Port settings ({menu} followed by the following):
--- p change port
--- 7 8 set data bits
--- N E O S M change parity (None, Even, Odd, Space, Mark)
@@ -577,7 +566,9 @@
-def main():
+# default args can be used to override when calling main() from an other script
+# e.g to create a miniterm-my-device.py
+def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr=None):
import argparse
parser = argparse.ArgumentParser(
@@ -586,13 +577,13 @@
parser.add_argument("port",
nargs='?',
help="serial port name",
- default=DEFAULT_PORT)
+ default=default_port)
parser.add_argument("baudrate",
nargs='?',
type=int,
help="set baud rate, default: %(default)s",
- default=DEFAULT_BAUDRATE)
+ default=default_baudrate)
group = parser.add_argument_group("port settings")
@@ -615,12 +606,12 @@
group.add_argument("--rts",
type=int,
help="set initial RTS line state (possible values: 0, 1)",
- default=DEFAULT_RTS)
+ default=default_rts)
group.add_argument("--dtr",
type=int,
help="set initial DTR line state (possible values: 0, 1)",
- default=DEFAULT_DTR)
+ default=default_dtr)
group = parser.add_argument_group("data handling")
@@ -657,13 +648,15 @@
group.add_argument("--exit-char",
type=int,
- help="Unicode of special character that is used to exit the application",
+ metavar='NUM',
+ help="Unicode of special character that is used to exit the application, default: %(default)s",
default=0x1d # GS/CTRL+]
)
group.add_argument("--menu-char",
type=int,
- help="Unicode code of special character that is used to control miniterm (menu)",
+ metavar='NUM',
+ help="Unicode code of special character that is used to control miniterm (menu), default: %(default)s",
default=0x14 # Menu: CTRL+T
)