From 917bdfc1a310c087b31e71d3ce888f5ac29f4521 Mon Sep 17 00:00:00 2001 From: Mark Fine Date: Thu, 30 Apr 2015 11:28:46 -0700 Subject: [PATCH 1/2] Add an example byte logger. --- python/sbp/client/examples/bytes.py | 53 +++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 python/sbp/client/examples/bytes.py diff --git a/python/sbp/client/examples/bytes.py b/python/sbp/client/examples/bytes.py new file mode 100644 index 0000000000..b646ae284a --- /dev/null +++ b/python/sbp/client/examples/bytes.py @@ -0,0 +1,53 @@ +# Copyright (C) 2015 Swift Navigation Inc. +# Contact: Mark Fine +# +# This source is subject to the license found in the file 'LICENSE' which must +# be be distributed together with this source. All other rights reserved. +# +# THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, +# EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. + +from sbp.client.drivers.pyserial_driver import PySerialDriver +from sbp.client.loggers.byte_logger import ByteLogger +from sbp.client.handler import Handler + +DEFAULT_SERIAL_PORT = "/dev/ttyUSB0" +DEFAULT_SERIAL_BAUD = 1000000 +DEFAULT_LOG_FILENAME = time.strftime("sbp-%Y%m%d-%H%M%S.log") + + +def get_args(): + """ + Get and parse arguments. + """ + import argparse + parser = argparse.ArgumentParser(description="Swift Navigation SBP Bytes Example.") + parser.add_argument("-s", "--serial-port", + default=[DEFAULT_SERIAL_PORT], nargs=1, + help="specify the serial port to use.") + parser.add_argument("-b", "--baud", + default=[DEFAULT_SERIAL_BAUD], nargs=1, + help="specify the baud rate to use.") + parser.add_argument("-f", "--filename", + default=[DEFAULT_LOG_FILENAME], nargs=1, + help="specify the filename to write to.") + return parser.parse_args() + +def main(): + args = get_args() + + with PySerialDriver(args.serial_port[0], args.baud[0]) as driver: + with Handler(driver.read, driver.write) as link: + with ByteLogger(args.filename[0]) as logger: + link.add_callback(logger) + link.start + + try: + while True: + time.sleep(0.1) + except KeyboardInterrupt: + pass + +if __name__ == "__main__": + main() From 4a3223437098f77780260821efd5f15dfd51fb10 Mon Sep 17 00:00:00 2001 From: Mark Fine Date: Thu, 30 Apr 2015 11:35:29 -0700 Subject: [PATCH 2/2] add the time import. --- python/sbp/client/examples/bytes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) mode change 100644 => 100755 python/sbp/client/examples/bytes.py diff --git a/python/sbp/client/examples/bytes.py b/python/sbp/client/examples/bytes.py old mode 100644 new mode 100755 index b646ae284a..0c236ee8eb --- a/python/sbp/client/examples/bytes.py +++ b/python/sbp/client/examples/bytes.py @@ -8,6 +8,8 @@ # EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. +import time + from sbp.client.drivers.pyserial_driver import PySerialDriver from sbp.client.loggers.byte_logger import ByteLogger from sbp.client.handler import Handler @@ -16,7 +18,6 @@ DEFAULT_SERIAL_BAUD = 1000000 DEFAULT_LOG_FILENAME = time.strftime("sbp-%Y%m%d-%H%M%S.log") - def get_args(): """ Get and parse arguments.