summaryrefslogtreecommitdiff
path: root/serial/tools/miniterm.py
diff options
context:
space:
mode:
Diffstat (limited to 'serial/tools/miniterm.py')
-rw-r--r--serial/tools/miniterm.py70
1 files changed, 40 insertions, 30 deletions
diff --git a/serial/tools/miniterm.py b/serial/tools/miniterm.py
index 513bb2a..711edaf 100644
--- a/serial/tools/miniterm.py
+++ b/serial/tools/miniterm.py
@@ -189,8 +189,8 @@ class NoTerminal(Transform):
REPLACEMENT_MAP = dict((x, 0x2400 + x) for x in range(32) if unichr(x) not in '\r\n\b\t')
REPLACEMENT_MAP.update({
- 0x7F: 0x2421, # DEL
- 0x9B: 0x2425, # CSI
+ 0x7F: 0x2421, # DEL
+ 0x9B: 0x2425, # CSI
})
def rx(self, text):
@@ -204,9 +204,9 @@ class NoControls(NoTerminal):
REPLACEMENT_MAP = dict((x, 0x2400 + x) for x in range(32))
REPLACEMENT_MAP.update({
- 32: 0x2423, # visual space
- 0x7F: 0x2421, # DEL
- 0x9B: 0x2425, # CSI
+ 32: 0x2423, # visual space
+ 0x7F: 0x2421, # DEL
+ 0x9B: 0x2425, # CSI
})
@@ -276,8 +276,8 @@ TRANSFORMATIONS = {
'debug': DebugIO,
}
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def dump_port_list():
if comports:
sys.stderr.write('\n--- Available ports:\n')
@@ -313,7 +313,6 @@ class Miniterm(object):
self._reader_alive = False
self.receiver_thread.join()
-
def start(self):
self.alive = True
self._start_reader()
@@ -344,7 +343,6 @@ class Miniterm(object):
self.output_encoding = encoding
self.tx_encoder = codecs.getincrementalencoder(encoding)(errors)
-
def dump_port_settings(self):
sys.stderr.write("\n--- Settings: {p.name} {p.baudrate},{p.bytesize},{p.parity},{p.stopbits}\n".format(
p=self.serial))
@@ -386,13 +384,12 @@ class Miniterm(object):
for transformation in self.rx_transformations:
text = transformation.rx(text)
self.console.write(text)
- except serial.SerialException as e:
+ except serial.SerialException:
self.alive = False
# XXX would be nice if the writer could be interrupted at this
# point... to exit completely
raise
-
def writer(self):
"""\
Loop and copy console->serial until self.exit_character character is
@@ -488,7 +485,7 @@ class Miniterm(object):
self.update_transformations()
sys.stderr.write('--- filters: {}\n'.format(' '.join(self.filters)))
elif c == '\x0c': # CTRL+L -> EOL mode
- modes = list(EOL_TRANSFORMATIONS) # keys
+ modes = list(EOL_TRANSFORMATIONS) # keys
eol = modes.index(self.eol) + 1
if eol >= len(modes):
eol = 0
@@ -637,7 +634,6 @@ class Miniterm(object):
)
-
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# default args can be used to override when calling main() from an other script
# e.g to create a miniterm-my-device.py
@@ -647,12 +643,14 @@ def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr
parser = argparse.ArgumentParser(
description="Miniterm - A simple terminal program for the serial port.")
- parser.add_argument("port",
+ parser.add_argument(
+ "port",
nargs='?',
help="serial port name",
default=default_port)
- parser.add_argument("baudrate",
+ parser.add_argument(
+ "baudrate",
nargs='?',
type=int,
help="set baud rate, default: %(default)s",
@@ -660,72 +658,84 @@ def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr
group = parser.add_argument_group("port settings")
- group.add_argument("--parity",
+ group.add_argument(
+ "--parity",
choices=['N', 'E', 'O', 'S', 'M'],
type=lambda c: c.upper(),
help="set parity, one of {N E O S M}, default: N",
default='N')
- group.add_argument("--rtscts",
+ group.add_argument(
+ "--rtscts",
action="store_true",
help="enable RTS/CTS flow control (default off)",
default=False)
- group.add_argument("--xonxoff",
+ group.add_argument(
+ "--xonxoff",
action="store_true",
help="enable software flow control (default off)",
default=False)
- group.add_argument("--rts",
+ group.add_argument(
+ "--rts",
type=int,
help="set initial RTS line state (possible values: 0, 1)",
default=default_rts)
- group.add_argument("--dtr",
+ group.add_argument(
+ "--dtr",
type=int,
help="set initial DTR line state (possible values: 0, 1)",
default=default_dtr)
group = parser.add_argument_group("data handling")
- group.add_argument("-e", "--echo",
+ group.add_argument(
+ "-e", "--echo",
action="store_true",
help="enable local echo (default off)",
default=False)
- group.add_argument("--encoding",
+ group.add_argument(
+ "--encoding",
dest="serial_port_encoding",
metavar="CODEC",
help="set the encoding for the serial port (e.g. hexlify, Latin1, UTF-8), default: %(default)s",
default='UTF-8')
- group.add_argument("-f", "--filter",
+ group.add_argument(
+ "-f", "--filter",
action="append",
metavar="NAME",
help="add text transformation",
default=[])
- group.add_argument("--eol",
+ group.add_argument(
+ "--eol",
choices=['CR', 'LF', 'CRLF'],
type=lambda c: c.upper(),
help="end of line mode",
default='CRLF')
- group.add_argument("--raw",
+ group.add_argument(
+ "--raw",
action="store_true",
help="Do no apply any encodings/transformations",
default=False)
group = parser.add_argument_group("hotkeys")
- group.add_argument("--exit-char",
+ group.add_argument(
+ "--exit-char",
type=int,
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",
+ group.add_argument(
+ "--menu-char",
type=int,
metavar='NUM',
help="Unicode code of special character that is used to control miniterm (menu), default: %(default)s",
@@ -734,12 +744,14 @@ def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr
group = parser.add_argument_group("diagnostics")
- group.add_argument("-q", "--quiet",
+ group.add_argument(
+ "-q", "--quiet",
action="store_true",
help="suppress non-error messages",
default=False)
- group.add_argument("--develop",
+ group.add_argument(
+ "--develop",
action="store_true",
help="show Python traceback on error",
default=False)
@@ -749,7 +761,6 @@ def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr
if args.menu_char == args.exit_char:
parser.error('--exit-char can not be the same as --menu-char')
-
# no port given on command line -> ask user now
if args.port is None:
dump_port_list()
@@ -767,7 +778,6 @@ def main(default_port=None, default_baudrate=9600, default_rts=None, default_dtr
else:
filters = ['default']
-
try:
serial_instance = serial.serial_for_url(
args.port,