Source code for sbp.client.drivers.base_driver
# Copyright (C) 2015 Swift Navigation Inc.
# Contact: Mark Fine <mark@swiftnav.com>
#
# 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.
[docs]class BaseDriver(object):
"""
BaseDriver
The :class:`BaseDriver` class wraps IO sources of SBP messages and provides
context management.
Parameters
----------
handle : port
Stream of bytes to read from and write to.
"""
def __init__(self, handle):
self.handle = handle
def __enter__(self):
self.flush()
return self
def __exit__(self, *args):
self.flush()
self.close()
[docs] def read(self, size):
"""
Read wrapper.
Parameters
----------
size : int
Number of bytes to read.
"""
return self.handle.read(size)
[docs] def write(self, s):
"""
Write wrapper.
Parameters
----------
s : bytes
Bytes to write
"""
return self.handle.write(s)
[docs] def flush(self):
"""
Flush wrapper.
"""
self.handle.flush()
[docs] def close(self):
"""
Close wrapper.
"""
self.handle.close()