bewest / decoding-carelink

python serial driver for mm comlink2 protocol
http://bewest.github.io/decoding-carelink
Other
71 stars 52 forks source link

Cannot read recent glucose data #178

Open dougtakeuti opened 8 years ago

dougtakeuti commented 8 years ago

This is an issue in which a Medtronic 722 pump responds with any data but glucose.

pi@raspberrypi:~ $ mm-send-comm.py tweak ReadCurGlucosePageNumber

do stuff with an insulin pump over RF

using Namespace(autoinit=False, begin=None, bytesPerRecord=None, command='tweak', descr=None, dryrun=False, effectTime=None, end=None, init=False, maxRecords=None, name=None, no_postlude=False, no_prelude=False, no_rf_prelude=False, other='ReadCurGlucosePageNumber', page=None, params=None, port='', postfix=None, prefix=None, prefix_path='', save=False, saveall=False, serial='524074', session_life=10, verbose=None)

{'radio': {'errors.crc': 0,
           'errors.naks': 0,
           'errors.sequence': 0,
           'errors.timeouts': 0,
           'packets.received': 0L,
           'packets.transmit': 0L},
 'usb': {'errors.crc': 0,
         'errors.naks': 0,
         'errors.sequence': 0,
         'errors.timeouts': 0,
         'packets.received': 3L,
         'packets.transmit': 3L}}

PUMP MODEL: ReadPumpModel:size[64]:data:''

<class 'decocare.commands.ReadCurGlucosePageNumber'> {} response: ReadCurGlucosePageNumber:size[64]:data:{'isig': 32, 'page': 193L, 'glucose': 32} hexdump:

0000   0x00 0x00 0x00 0xc1 0x00 0x20 0x00 0x20    ..... .
0008   0x00 0x20 0x00 0x20 0x00 0x00 0x00 0x00    . . ....
0010   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0018   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0020   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0028   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0030   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0038   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........

decoded:

{'isig': 32, 'page': 193L, 'glucose': 32}

end stats

{'radio': {'errors.crc': 0,
           'errors.naks': 0,
           'errors.sequence': 0,
           'errors.timeouts': 0,
           'packets.received': 6L,
           'packets.transmit': 2L},
 'usb': {'errors.crc': 0,
         'errors.naks': 0,
         'errors.sequence': 0,
         'errors.timeouts': 0,
         'packets.received': 11L,
         'packets.transmit': 11L}}

pi@raspberrypi:~ $ mm-send-comm.py tweak ReadGlucoseHistory --save --page 31

do stuff with an insulin pump over RF

using Namespace(autoinit=False, begin=None, bytesPerRecord=None, command='tweak', descr=None, dryrun=False, effectTime=None, end=None, init=False, maxRecords=None, name=None, no_postlude=False, no_prelude=False, no_rf_prelude=False, other='ReadGlucoseHistory', page=31, params=None, port='', postfix=None, prefix=None, prefix_path='', save=True, saveall=False, serial='524074', session_life=10, verbose=None)

CRITICAL:decocare.stick:FAILED TO DOWNLOAD ANYTHING, after 0  expected:64
ERROR:decocare.stick:ACK is zero bytes!
Traceback (most recent call last):
  File "/usr/local/bin/mm-send-comm.py", line 6, in <module>
    exec(compile(open(__file__).read(), __file__, 'exec'))
  File "/home/pi/src/decoding-carelink/bin/mm-send-comm.py", line 8, in <module>
    app.run(None)
  File "/home/pi/src/decoding-carelink/decocare/helpers/cli.py", line 113, in run
    self.prelude(args)
  File "/home/pi/src/decoding-carelink/decocare/helpers/cli.py", line 130, in prelude
    uart.open( )
  File "/home/pi/src/decoding-carelink/decocare/stick.py", line 874, in open
    log.info('%s' % self.product_info( ))
  File "/home/pi/src/decoding-carelink/decocare/stick.py", line 515, in product_info
    return self.query(ProductInfo)
  File "/home/pi/src/decoding-carelink/decocare/stick.py", line 509, in query
    return self.process( )
  File "/home/pi/src/decoding-carelink/decocare/stick.py", line 496, in process
    ack, response = self.command.respond(raw)
  File "/home/pi/src/decoding-carelink/decocare/stick.py", line 71, in respond
    raise AckError("ACK is 0 bytes:\n%s" % lib.hexdump(raw))
decocare.errors.AckError: ACK is 0 bytes:

pi@raspberrypi:~ $ mm-send-comm.py tweak ReadGlucoseHistory --save --page 32
## do stuff with an insulin pump over RF
using ` Namespace(autoinit=False, begin=None, bytesPerRecord=None, command='tweak', descr=None, dryrun=False, effectTime=None, end=None, init=False, maxRecords=None, name=None, no_postlude=False, no_prelude=False, no_rf_prelude=False, other='ReadGlucoseHistory', page=32, params=None, port='', postfix=None, prefix=None, prefix_path='', save=True, saveall=False, serial='524074', session_life=10, verbose=None) `
```javascript
{'radio': {'errors.crc': 0,
           'errors.naks': 0,
           'errors.sequence': 0,
           'errors.timeouts': 0,
           'packets.received': 160L,
           'packets.transmit': 2L},
 'usb': {'errors.crc': 0,
         'errors.naks': 0,
         'errors.sequence': 0,
         'errors.timeouts': 0,
         'packets.received': 16L,
         'packets.transmit': 16L}}

PUMP MODEL: ReadPumpModel:size[64]:data:'722'

<class 'decocare.commands.ReadGlucoseHistory'> {'page': 32} CRITICAL:decocare.stick:FAILED TO DOWNLOAD ANYTHING, after 0 expected:64 ERROR:decocare.stick:ACK is zero bytes! Traceback (most recent call last): File "/usr/local/bin/mm-send-comm.py", line 6, in exec(compile(open(file).read(), file, 'exec')) File "/home/pi/src/decoding-carelink/bin/mm-send-comm.py", line 8, in app.run(None) File "/home/pi/src/decoding-carelink/decocare/helpers/cli.py", line 114, in run self.main(args) File "/home/pi/src/decoding-carelink/decocare/helpers/messages.py", line 37, in main dryrun=args.dryrun, save=args.save, prefix=args.prefix_path) File "/home/pi/src/decoding-carelink/decocare/helpers/cli.py", line 205, in exec_request response = pump.query(msg, **args) File "/home/pi/src/decoding-carelink/decocare/session.py", line 101, in query self.execute(command) File "/home/pi/src/decoding-carelink/decocare/session.py", line 98, in execute return super(type(self), self).execute(command) File "/home/pi/src/decoding-carelink/decocare/session.py", line 35, in execute self.transfer( ) File "/home/pi/src/decoding-carelink/decocare/session.py", line 61, in transfer return self.stick.transmit_packet(self.command) File "/home/pi/src/decoding-carelink/decocare/stick.py", line 861, in transmit_packet result = self.process( ) File "/home/pi/src/decoding-carelink/decocare/stick.py", line 496, in process ack, response = self.command.respond(raw) File "/home/pi/src/decoding-carelink/decocare/stick.py", line 411, in respond ack, body = super(type(self), self).respond(raw) File "/home/pi/src/decoding-carelink/decocare/stick.py", line 71, in respond raise AckError("ACK is 0 bytes:\n%s" % lib.hexdump(raw)) decocare.errors.AckError: ACK is 0 bytes:

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/31830551-cannot-read-recent-glucose-data?utm_campaign=plugin&utm_content=tracker%2F522759&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F522759&utm_medium=issues&utm_source=github).