diff options
author | Diego Elio Pettenò <flameeyes@flameeyes.com> | 2020-03-22 17:41:48 +0100 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2020-03-22 17:50:42 +0100 |
commit | d0a282b552922f31f80b2e979b79d5697fbbbcda (patch) | |
tree | c6e76cd3333bf60e1db8b787c2209043589bbdf9 /glucometerutils/support/contourusb.py | |
parent | Exclude mypy from Python 3.9 (diff) | |
download | glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar.gz glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar.bz2 glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar.lz glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar.xz glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.tar.zst glucometerutils-d0a282b552922f31f80b2e979b79d5697fbbbcda.zip |
Diffstat (limited to 'glucometerutils/support/contourusb.py')
-rw-r--r-- | glucometerutils/support/contourusb.py | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/glucometerutils/support/contourusb.py b/glucometerutils/support/contourusb.py index 9afb79d..6cd9442 100644 --- a/glucometerutils/support/contourusb.py +++ b/glucometerutils/support/contourusb.py @@ -15,13 +15,13 @@ import csv import datetime import logging import re -from typing import Dict, Iterator, List, Text +from typing import Dict, Iterator, List, Optional, Text, Tuple import construct from glucometerutils import exceptions from glucometerutils.exceptions import InvalidResponse -from glucometerutils.support import hiddevice +from glucometerutils.support import driver_base, hiddevice # regexr.com/4k6jb _HEADER_RECORD_RE = re.compile( @@ -64,7 +64,7 @@ class FrameError(Exception): pass -class ContourHidDevice(hiddevice.HidDevice): +class ContourHidDevice(driver_base.GlucometerDriver): """Base class implementing the ContourUSB HID common protocol. """ @@ -77,11 +77,16 @@ class ContourHidDevice(hiddevice.HidDevice): mode_command = object() state = None + def __init__(self, usb_ids, device_path): + # type: (Tuple[int, int], Optional[Text]) -> None + super().__init__(device_path) + self._hid_session = hiddevice.HidSession(usb_ids, device_path) + def read(self, r_size=blocksize): result = [] while True: - data = self._read() + data = self._hid_session.read() dstr = data result.append(dstr[4 : data[3] + 4]) if data[3] != self.blocksize - 4: @@ -94,7 +99,7 @@ class ContourHidDevice(hiddevice.HidDevice): pad_length = self.blocksize - len(data) data += pad_length * b"\x00" - self._write(data) + self._hid_session.write(data) USB_VENDOR_ID = 0x1A79 # type: int # Bayer Health Care LLC Contour USB_PRODUCT_ID = 0x6002 # type: int |