diff options
author | Andrew Cady <d@jerkface.net> | 2017-04-01 19:40:41 -0400 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2017-04-01 19:40:41 -0400 |
commit | 59de02bd765f695f2a2ba7c41ad575e5f6188d6e (patch) | |
tree | fc04f4e3675187afc9d856b0d3f81774bb0b9eb1 | |
parent | 6b735adbead93403c46de690f4c225d0d347f452 (diff) |
catch (and avoid) some more serial port error types
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | ModemManager.rules | 8 | ||||
-rw-r--r-- | dexcom_reader/readdata.py | 8 |
3 files changed, 19 insertions, 0 deletions
@@ -11,6 +11,9 @@ clean: | |||
11 | DEXCOM_READER_PATH=$(PWD)/dexcom_reader | 11 | DEXCOM_READER_PATH=$(PWD)/dexcom_reader |
12 | SERVICE_CMDLINE=$(DEXCOM_READER_PATH)/dexcom_dumper.py -v --poll --http=$(REMOTE_HOST) | 12 | SERVICE_CMDLINE=$(DEXCOM_READER_PATH)/dexcom_dumper.py -v --poll --http=$(REMOTE_HOST) |
13 | 13 | ||
14 | install-rules: ModemManager.rules | ||
15 | install -m0644 ModemManager.rules /etc/udev/rules.d/77-mm-usb-device-blacklist.rules | ||
16 | |||
14 | draco.service: draco.service.in | 17 | draco.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 @@ | |||
1 | ACTION!="add|change|move", GOTO="mm_usb_device_blacklist_end" | ||
2 | SUBSYSTEM!="usb", GOTO="mm_usb_device_blacklist_end" | ||
3 | ENV{DEVTYPE}!="usb_device", GOTO="mm_usb_device_blacklist_end" | ||
4 | |||
5 | # Dexcom G5 | ||
6 | ATTRS{idVendor}=="22a3", ATTRS{idProduct}=="0047", ENV{ID_MM_DEVICE_IGNORE}="1" | ||
7 | |||
8 | LABEL="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 | ||