summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2017-04-01 19:40:41 -0400
committerAndrew Cady <d@jerkface.net>2017-04-01 19:40:41 -0400
commit59de02bd765f695f2a2ba7c41ad575e5f6188d6e (patch)
treefc04f4e3675187afc9d856b0d3f81774bb0b9eb1
parent6b735adbead93403c46de690f4c225d0d347f452 (diff)
catch (and avoid) some more serial port error types
-rw-r--r--Makefile3
-rw-r--r--ModemManager.rules8
-rw-r--r--dexcom_reader/readdata.py8
3 files changed, 19 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index c146dac..a319531 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,9 @@ clean:
11DEXCOM_READER_PATH=$(PWD)/dexcom_reader 11DEXCOM_READER_PATH=$(PWD)/dexcom_reader
12SERVICE_CMDLINE=$(DEXCOM_READER_PATH)/dexcom_dumper.py -v --poll --http=$(REMOTE_HOST) 12SERVICE_CMDLINE=$(DEXCOM_READER_PATH)/dexcom_dumper.py -v --poll --http=$(REMOTE_HOST)
13 13
14install-rules: ModemManager.rules
15 install -m0644 ModemManager.rules /etc/udev/rules.d/77-mm-usb-device-blacklist.rules
16
14draco.service: draco.service.in 17draco.service: draco.service.in
15 $(if $(REMOTE_HOST),,$(error "You must define $$REMOTE_HOST")) 18 $(if $(REMOTE_HOST),,$(error "You must define $$REMOTE_HOST"))
16 sed -e "s?^\(ExecStart=\).*?\1$(SERVICE_CMDLINE)?" < $< > $@ 19 sed -e "s?^\(ExecStart=\).*?\1$(SERVICE_CMDLINE)?" < $< > $@
diff --git a/ModemManager.rules b/ModemManager.rules
new file mode 100644
index 0000000..188f3fa
--- /dev/null
+++ b/ModemManager.rules
@@ -0,0 +1,8 @@
1ACTION!="add|change|move", GOTO="mm_usb_device_blacklist_end"
2SUBSYSTEM!="usb", GOTO="mm_usb_device_blacklist_end"
3ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_device_blacklist_end"
4
5# Dexcom G5
6ATTRS{idVendor}=="22a3", ATTRS{idProduct}=="0047", ENV{ID_MM_DEVICE_IGNORE}="1"
7
8LABEL="mm_usb_device_blacklist_end"
diff --git a/dexcom_reader/readdata.py b/dexcom_reader/readdata.py
index 84c2356..84033f0 100644
--- a/dexcom_reader/readdata.py
+++ b/dexcom_reader/readdata.py
@@ -78,6 +78,8 @@ class Dexcom(object):
78 return self.port.write(*args, **kwargs) 78 return self.port.write(*args, **kwargs)
79 except ValueError: 79 except ValueError:
80 raise constants.SerialPortError 80 raise constants.SerialPortError
81 except serial.serialutil.SerialException:
82 raise constants.SerialPortError
81 except termios.error: 83 except termios.error:
82 raise constants.SerialPortError 84 raise constants.SerialPortError
83 85
@@ -86,6 +88,8 @@ class Dexcom(object):
86 return self.port.read(*args, **kwargs) 88 return self.port.read(*args, **kwargs)
87 except ValueError: 89 except ValueError:
88 raise constants.SerialPortError 90 raise constants.SerialPortError
91 except serial.serialutil.SerialException:
92 raise constants.SerialPortError
89 except termios.error: 93 except termios.error:
90 raise constants.SerialPortError 94 raise constants.SerialPortError
91 95
@@ -232,6 +236,8 @@ class Dexcom(object):
232 self.port.flush() 236 self.port.flush()
233 except ValueError: 237 except ValueError:
234 raise constants.SerialPortError 238 raise constants.SerialPortError
239 except serial.serialutil.SerialException:
240 raise constants.SerialPortError
235 except termios.error: 241 except termios.error:
236 raise constants.SerialPortError 242 raise constants.SerialPortError
237 243
@@ -241,6 +247,8 @@ class Dexcom(object):
241 self.port.flushOutput() 247 self.port.flushOutput()
242 except ValueError: 248 except ValueError:
243 raise constants.SerialPortError 249 raise constants.SerialPortError
250 except serial.serialutil.SerialException:
251 raise constants.SerialPortError
244 except termios.error: 252 except termios.error:
245 raise constants.SerialPortError 253 raise constants.SerialPortError
246 254