From 6b735adbead93403c46de690f4c225d0d347f452 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Fri, 10 Feb 2017 23:19:10 +0000 Subject: throw a specific exception for serial port errors --- dexcom_reader/readdata.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) (limited to 'dexcom_reader/readdata.py') diff --git a/dexcom_reader/readdata.py b/dexcom_reader/readdata.py index e589b1a..84c2356 100644 --- a/dexcom_reader/readdata.py +++ b/dexcom_reader/readdata.py @@ -11,7 +11,7 @@ import re import util import xml.etree.ElementTree as ET import platform - +import termios class ReadPacket(object): def __init__(self, command, data): @@ -74,10 +74,20 @@ class Dexcom(object): return self._port def write(self, *args, **kwargs): - return self.port.write(*args, **kwargs) + try: + return self.port.write(*args, **kwargs) + except ValueError: + raise constants.SerialPortError + except termios.error: + raise constants.SerialPortError def read(self, *args, **kwargs): - return self.port.read(*args, **kwargs) + try: + return self.port.read(*args, **kwargs) + except ValueError: + raise constants.SerialPortError + except termios.error: + raise constants.SerialPortError def readpacket(self, timeout=None): total_read = 4 @@ -218,11 +228,21 @@ class Dexcom(object): return ET.fromstring(data) def flush(self): - self.port.flush() + try: + self.port.flush() + except ValueError: + raise constants.SerialPortError + except termios.error: + raise constants.SerialPortError def clear(self): - self.port.flushInput() - self.port.flushOutput() + try: + self.port.flushInput() + self.port.flushOutput() + except ValueError: + raise constants.SerialPortError + except termios.error: + raise constants.SerialPortError def GetFirmwareHeader(self): i = self.GenericReadCommand(constants.READ_FIRMWARE_HEADER) -- cgit v1.2.3