diff options
author | Diego Elio Pettenò <flameeyes@flameeyes.eu> | 2018-01-06 21:47:13 +0100 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@flameeyes.eu> | 2018-01-06 21:47:13 +0100 |
commit | 3999c3eb3c82abc20af618df81631a114504a7b0 (patch) | |
tree | 1a560a81324270cee508b0ad27e83236ef1d1ee8 /glucometerutils/drivers/otultraeasy.py | |
parent | tests: improve code quality by passing the linter. (diff) | |
download | glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar.gz glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar.bz2 glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar.lz glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar.xz glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.tar.zst glucometerutils-3999c3eb3c82abc20af618df81631a114504a7b0.zip |
Diffstat (limited to 'glucometerutils/drivers/otultraeasy.py')
-rw-r--r-- | glucometerutils/drivers/otultraeasy.py | 43 |
1 files changed, 11 insertions, 32 deletions
diff --git a/glucometerutils/drivers/otultraeasy.py b/glucometerutils/drivers/otultraeasy.py index 57c7ea2..0063ec1 100644 --- a/glucometerutils/drivers/otultraeasy.py +++ b/glucometerutils/drivers/otultraeasy.py @@ -15,7 +15,7 @@ Expected device path: /dev/ttyUSB0 or similar serial port device. __author__ = 'Diego Elio Pettenò' __email__ = 'flameeyes@flameeyes.eu' -__copyright__ = 'Copyright © 2014-2017, Diego Elio Pettenò' +__copyright__ = 'Copyright © 2014-2018, Diego Elio Pettenò' __license__ = 'MIT' import binascii @@ -27,36 +27,12 @@ import construct from glucometerutils import common from glucometerutils.support import construct_extras from glucometerutils.support import lifescan +from glucometerutils.support import lifescan_binary_protocol from glucometerutils.support import serial _INVALID_RECORD = 501 - -_PACKET = construct.Struct( - construct.RawCopy( - construct.Embedded( - construct.Struct( - construct.Const(b'\x02'), # stx - 'length' / construct.Rebuild( - construct.Byte, lambda ctx: len(ctx.message) + 6), - construct.EmbeddedBitStruct( - construct.Padding(3), - 'more' / construct.Default(construct.Flag, False), - 'disconnect' / construct.Flag, - 'acknowledge' / construct.Flag, - 'expect_receive' / construct.Flag, - 'sequence_number' / construct.Flag, - ), - 'message' / construct.Bytes(length=lambda ctx: ctx.length - 6), - construct.Const(b'\x03'), # etx - ), - ), - ), - 'checksum' / construct.Checksum( - construct.Int16ul, lifescan.crc_ccitt, construct.this.data), -) - _COMMAND_SUCCESS = construct.Const(b'\x05\x06') _VERSION_REQUEST = construct.Const(b'\x05\x0d\x02') @@ -130,7 +106,8 @@ class Device(serial.SerialDevice): self.sent_counter_ = False self.expect_receive_ = False - self.buffered_reader_ = construct.Rebuffered(_PACKET, tailcutoff=1024) + self.buffered_reader_ = construct.Rebuffered( + lifescan_binary_protocol.PACKET, tailcutoff=1024) def connect(self): try: @@ -143,13 +120,15 @@ class Device(serial.SerialDevice): self.connect() def _send_packet(self, message, acknowledge=False, disconnect=False): - pkt = _PACKET.build( + pkt = lifescan_binary_protocol.PACKET.build( {'value': { 'message': message, - 'sequence_number': self.sent_counter_, - 'expect_receive': self.expect_receive_, - 'acknowledge': acknowledge, - 'disconnect': disconnect, + 'link_control': { + 'sequence_number': self.sent_counter_, + 'expect_receive': self.expect_receive_, + 'acknowledge': acknowledge, + 'disconnect': disconnect, + }, }}) logging.debug('sending packet: %s', binascii.hexlify(pkt)) |