From 7ba8ffa0a3352af0d6b62505f744fc4748b28620 Mon Sep 17 00:00:00 2001 From: Greg Albrecht <gba@onbeep.com> Date: Fri, 13 Sep 2013 23:26:18 -0700 Subject: [PATCH] OMG KISS WORKS. DONT TOUCH ANYTHING. --- kiss/classes.py | 12 ++++++++++++ kiss/constants.py | 2 +- kiss/util.py | 10 ++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/kiss/classes.py b/kiss/classes.py index 55f9599..e6882f1 100644 --- a/kiss/classes.py +++ b/kiss/classes.py @@ -34,6 +34,17 @@ class KISS(object): self.speed = speed self.serial_int = None # TODO Potentially very f*cking unsafe. + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + if self.serial_int and self.serial_int.isOpen(): + self.serial_int.close() + + def __del__(self): + if self.serial_int and self.serial_int.isOpen(): + self.serial_int.close() + def start(self): """ Initializes the KISS device and commits configuration. @@ -68,6 +79,7 @@ class KISS(object): :param callback: Callback to call with decoded data. """ + self.logger.debug('callback=%s', callback) read_buffer = '' while 1: read_data = self.serial_int.read(kiss.constants.READ_BYTES) diff --git a/kiss/constants.py b/kiss/constants.py index 974e610..d0513ca 100644 --- a/kiss/constants.py +++ b/kiss/constants.py @@ -11,7 +11,7 @@ __license__ = 'Apache 2.0' import logging -LOG_LEVEL = logging.INFO +LOG_LEVEL = logging.DEBUG LOG_FORMAT = ('%(asctime)s %(levelname)s %(name)s.%(funcName)s:%(lineno)d' ' - %(message)s') diff --git a/kiss/util.py b/kiss/util.py index 5e24874..3ff7f11 100644 --- a/kiss/util.py +++ b/kiss/util.py @@ -39,3 +39,13 @@ def escape_special_codes(raw_codes): kiss.constants.FEND, kiss.constants.FESC_TFEND ) + + +def unescape_special_codes(codes): + return codes.replace( + chr(0xc0), + chr(0xdb) + chr(0xdc) + ).replace( + chr(0xc0), + chr(0xdb) + chr(0xdd) + ) -- GitLab