decoding-carelink icon indicating copy to clipboard operation
decoding-carelink copied to clipboard

Some Bolus History Data Not Correct From mm-latest.py3

Open kenstack opened this issue 11 years ago • 17 comments

In reading the data from a 723 pump, I m getting 90%+ of the bolus history correct from mm-latest.py, but a couple of data points are well off. Here is an example.

Here, the bolus amount should be 11 units, and the carb ratio should be 9. I attached a jpg of the pump bolus history itself below. Again, most of the bolus data points are perfect.

I am trying to get bolus history to do on board insulin calculations hence my need for the data.

Newer pumps like the 723 do have this as a parameter and that may be easier to get, but I am not sure where to start in terms of figuring out a new command. Im guessing its in there somewhere.

Thanks for any help / insights into either why the bolus history is wrong or how to grab the onboard insulin number.

{ "_type": "BolusWizard", "bg": 0, "bg_target_high": 90, "_description": "BolusWizard 2014-11-08T10:11:57 head[2], body[15] op[0x5b]", "timestamp": "2014-11-08T10:11:57", "sensitivity": 65, "bg_target_low": 110, "carb_ratio": 12.0, "food_estimate": 4.7, "unabsorbed_insulin_total": 0.0, "correction_estimate": 0.0, "carb_input": 100, "bolus_estimate": 4.7 }, { "_type": "Bolus", "_description": "Bolus 2014-11-08T10:11:57 head[8], body[0] op[0x01]", "timestamp": "2014-11-08T10:11:57", "programmed": 4.7, "amount": 4.7, "unabsorbed": 0.0, "duration": 0, "type": "normal"

img_9637

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/5867720-some-bolus-history-data-not-correct-from-mm-latest-py3?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).

kenstack avatar Nov 09 '14 04:11 kenstack

Can you run mm-send-comm.py tweak ReadHistoryData --page 0 --save, and run python list_history.py --larger ReadHistoryData-page-0.data and posting the result in here or on gist?

bewest avatar Nov 09 '14 04:11 bewest

yes will do in am! Thanks!

kenstack avatar Nov 09 '14 04:11 kenstack

Ben - no joy - I dont think its getting any data - here is what happened - when I run latest Im clearly getting history data

to get the command to run I had to use this below which I think is OK - I need to give it the port and serial directly - it doesnt seem to take it from the environment for some reason. Maybe this is my issue?

sudo ./bin/mm-send-comm.py --init --port /dev/ttyUSB0 --serial XXXXXX tweak ReadHistoryData --save

it then generates a file called ReadHistoryData-page-None.data, which Im guessing is null because below is the result of the python call

kenstack@ubuntu:~/decoding-carelink$ sudo python list_history.py --larger ReadHistoryData-page-None.data

START ReadHistoryData-page-None.data

STOPPING DOUBLE NULLS @ 2, found 0 nulls

reading more to debug 0x00 0000 0x00 0x00 .. 0 0

DEBUG HEX
DEBUG DECIMAL

end ReadHistoryData-page-None.data: 0 records

kenstack avatar Nov 09 '14 17:11 kenstack

tweak ReadHistoryData requires --page 0 or some page argument after.

bewest avatar Nov 09 '14 19:11 bewest

my bad!!

here is the output to the console - it looked like it only grabbed basal info which I was just changing. Do I need to go back more pages to yesterday?

kenstack@ubuntu:~/decoding-carelink$ sudo python list_history.py --larger ReadHistoryData-page-0.data

START ReadHistoryData-page-0.data

STOPPING DOUBLE NULLS @ 316, found 706 nulls

reading more to debug 0x00 0000 0x00 0x00 .. 0 0

DEBUG HEX
0000   0xe6 0xbc                                  ..
DEBUG DECIMAL
        230  188

RECORD 0 ChangeBasalProfile 2014-11-09T14:34:03 head[2], body[145] op[0x08]

DECODED
[{'offset': 0, 'rate': 1.1},
 {'offset': 14400000, 'rate': 1.6500000000000001},
 {'offset': 23400000, 'rate': 1.8},
 {'offset': 27000000, 'rate': 1.6500000000000001},
 {'offset': 32400000, 'rate': 1.4000000000000001},
 {'offset': 43200000, 'rate': 1.5},
 {'offset': 48600000, 'rate': 1.5},
 {'offset': 54000000, 'rate': 1.55},
 {'offset': 61200000, 'rate': 1.6500000000000001},
 {'offset': 73800000, 'rate': 1.6500000000000001},
 {'offset': 79200000, 'rate': 1.6}]
op hex (2)
0000   0x08 0x0b                                  ..
decimal
          8   11
datetime (2014-11-09T14:34:03)
0000   0x83 0xe2 0x0e 0x09 0x0e                   .....
body (145)
hex
0000   0x00 0x2c 0x00 0x08 0x42 0x00 0x0d 0x48    .,..B..H
0008   0x00 0x0f 0x42 0x00 0x12 0x38 0x00 0x18    ..B..8..
0010   0x3c 0x00 0x1b 0x3c 0x00 0x1e 0x3e 0x00    <..<..>.
0018   0x22 0x42 0x00 0x29 0x42 0x00 0x2c 0x40    "B.)B.,@
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    ........
0040   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0048   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0050   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0058   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0060   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0068   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0070   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0078   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0080   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0088   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0090   0x00                                       .
decimal
          0   44    0    8   66    0   13   72
          0   15   66    0   18   56    0   24
         60    0   27   60    0   30   62    0
         34   66    0   41   66    0   44   64
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0
HOUR BITS: [1, 1, 1]

RECORD 1 DanaScott0x09 2014-11-09T14:34:03 head[2], body[145] op[0x09]

DECODED
[{'offset': 0, 'rate': 1.1},
 {'offset': 14400000, 'rate': 1.6500000000000001},
 {'offset': 23400000, 'rate': 1.8},
 {'offset': 27000000, 'rate': 1.6500000000000001},
 {'offset': 32400000, 'rate': 1.4000000000000001},
 {'offset': 43200000, 'rate': 1.5},
 {'offset': 48600000, 'rate': 1.5},
 {'offset': 54000000, 'rate': 1.55},
 {'offset': 61200000, 'rate': 1.6500000000000001},
 {'offset': 73800000, 'rate': 1.55},
 {'offset': 79200000, 'rate': 1.55}]
op hex (2)
0000   0x09 0x0b                                  ..
decimal
          9   11
datetime (2014-11-09T14:34:03)
0000   0x83 0xe2 0x0e 0x09 0x0e                   .....
body (145)
hex
0000   0x00 0x2c 0x00 0x08 0x42 0x00 0x0d 0x48    .,..B..H
0008   0x00 0x0f 0x42 0x00 0x12 0x38 0x00 0x18    ..B..8..
0010   0x3c 0x00 0x1b 0x3c 0x00 0x1e 0x3e 0x00    <..<..>.
0018   0x22 0x42 0x00 0x29 0x3e 0x00 0x2c 0x3e    "B.)>.,>
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    ........
0040   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0048   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0050   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0058   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0060   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0068   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0070   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0078   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0080   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0088   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0090   0x00                                       .
decimal
          0   44    0    8   66    0   13   72
          0   15   66    0   18   56    0   24
         60    0   27   60    0   30   62    0
         34   66    0   41   62    0   44   62
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0    0    0    0    0    0    0    0
          0
HOUR BITS: [1, 1, 1]

RECORD 2 BasalProfileStart 2014-11-09T14:34:04 head[2], body[3] op[0x7b]

DECODED
{'offset': 48600000, 'rate': 1.5}
op hex (2)
0000   0x7b 0x06                                  {.
decimal
        123    6
datetime (2014-11-09T14:34:04)
0000   0x84 0xe2 0x0e 0x09 0x0e                   .....
body (3)
hex
0000   0x1b 0x3c 0x00                             .<.
decimal
         27   60    0
HOUR BITS: [1, 1, 1]

end ReadHistoryData-page-0.data: 3 records

kenstack avatar Nov 09 '14 19:11 kenstack

Yeah, try page 1, looks like you just rolled over a new page.

bewest avatar Nov 09 '14 19:11 bewest

it was on page 2 actually - its the bolus from 1011 am was supposed to be 11 units

THANKS!

START ReadHistoryData-page-2.data

RECORD 0 Bolus 2014-11-07T19:26:34 head[8], body[0] op[0x01]

DECODED
{'amount': 4.5,
 'duration': 0,
 'programmed': 4.5,
 'type': 'normal',
 'unabsorbed': 2.05}
op hex (8)
0000   0x01 0x00 0xb4 0x00 0xb4 0x00 0x52 0x00    ......R.
decimal
          1    0  180    0  180    0   82    0
datetime (2014-11-07T19:26:34)
0000   0xa2 0xda 0x33 0x07 0x0e                   ..3..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 1 BolusWizard 2014-11-07T19:33:31 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 0.3,
 'carb_input': 67,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 0.3,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-07T19:33:31)
0000   0x9f 0xe1 0x13 0x07 0x0e                   .....
body (15)
hex
0000   0x43 0x50 0x00 0x64 0x35 0x6e 0x00 0x01    CP.d5n..
0008   0x0c 0x00 0x00 0x00 0x01 0x0c 0x78         ......x
decimal
         67   80    0  100   53  110    0    1
         12    0    0    0    1   12  120
HOUR BITS: [1, 1, 1]

RECORD 2 UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]

DECODED
[{'age': 9, 'amount': 4.5, 'curve': 192},
 {'age': 119, 'amount': 6.35, 'curve': 192},
 {'age': 129, 'amount': 0.65, 'curve': 192},
 {'age': 189, 'amount': 1.8, 'curve': 192},
 {'age': 199, 'amount': 0.1, 'curve': 193},
 {'age': 213, 'amount': 0.4, 'curve': 208},
 {'age': 223, 'amount': 4.5, 'curve': 209}]
op hex (23)
0000   0x5c 0x17 0xb4 0x09 0xc0 0xfe 0x77 0xc0    \.....w.
0008   0x1a 0x81 0xc0 0x48 0xbd 0xc0 0x04 0xc7    ...H....
0010   0xc1 0x10 0xd5 0xd0 0xb4 0xdf 0xd1         .......
decimal
         92   23  180    9  192  254  119  192
         26  129  192   72  189  192    4  199
        193   16  213  208  180  223  209
datetime (unknown)

body (0)

RECORD 3 Bolus 2014-11-07T19:33:32 head[8], body[0] op[0x01]

DECODED
{'amount': 0.3,
 'duration': 0,
 'programmed': 0.3,
 'type': 'normal',
 'unabsorbed': 6.25}
op hex (8)
0000   0x01 0x01 0x0c 0x01 0x0c 0x00 0xfa 0x00    ........
decimal
          1    1   12    1   12    0  250    0
datetime (2014-11-07T19:33:32)
0000   0xa0 0xe1 0x33 0x07 0x0e                   ..3..
body (0)
HOUR BITS: [1, 1, 1]

RECORD 4 BasalProfileStart 2014-11-07T20:30:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 73800000, 'rate': 1.6500000000000001}
op hex (2)
0000   0x7b 0x09                                  {.
decimal
        123    9
datetime (2014-11-07T20:30:00)
0000   0x80 0xde 0x14 0x07 0x0e                   .....
body (3)
hex
0000   0x29 0x42 0x00                             )B.
decimal
         41   66    0
HOUR BITS: [1, 1, 0]

RECORD 5 Rewind 2014-11-07T22:50:24 head[2], body[0] op[0x21]

op hex (2)
0000   0x21 0x00                                  !.
decimal
         33    0
datetime (2014-11-07T22:50:24)
0000   0x98 0xf2 0x16 0x07 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 1]

RECORD 6 Prime 2014-11-07T22:52:28 head[5], body[0] op[0x03]

DECODED
{'amount': 13.3, 'fixed': 0.0, 'type': 'manual'}
op hex (5)
0000   0x03 0x00 0x00 0x00 0x85                   .....
decimal
          3    0    0    0  133
datetime (2014-11-07T22:52:28)
0000   0x9c 0xf4 0x36 0x07 0x0e                   ..6..
body (0)
HOUR BITS: [1, 1, 1]

RECORD 7 BasalProfileStart 2014-11-07T22:56:18 head[2], body[3] op[0x7b]

DECODED
{'offset': 73800000, 'rate': 1.6500000000000001}
op hex (2)
0000   0x7b 0x09                                  {.
decimal
        123    9
datetime (2014-11-07T22:56:18)
0000   0x92 0xf8 0x16 0x07 0x0e                   .....
body (3)
hex
0000   0x29 0x42 0x00                             )B.
decimal
         41   66    0
HOUR BITS: [1, 1, 1]

RECORD 8 Prime 2014-11-07T22:55:52 head[5], body[0] op[0x03]

DECODED
{'amount': 0.7, 'fixed': 0.7, 'type': 'fixed'}
op hex (5)
0000   0x03 0x00 0x07 0x00 0x07                   .....
decimal
          3    0    7    0    7
datetime (2014-11-07T22:55:52)
0000   0xb4 0xf7 0x16 0x07 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 1]

RECORD 9 BasalProfileStart 2014-11-08T00:00:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 0, 'rate': 1.1}
op hex (2)
0000   0x7b 0x00                                  {.
decimal
        123    0
datetime (2014-11-08T00:00:00)
0000   0x80 0xc0 0x00 0x08 0x0e                   .....
body (3)
hex
0000   0x00 0x2c 0x00                             .,.
decimal
          0   44    0
HOUR BITS: [1, 1, 0]

RECORD 10 MResultTotals 2014-11-08T00:00:00 head[5], body[3] op[0x07]

op hex (5)
0000   0x07 0x00 0x00 0x0c 0x52                   ....R
decimal
          7    0    0   12   82
datetime (2014-11-08T00:00:00)
0000   0xa7 0x8e                                  ..
body (3)
hex
0000   0x00 0x00 0x00                             ...
decimal
          0    0    0
HOUR BITS: [1, 0, 0]

RECORD 11 Sara6E 2014-11-08T00:00:00 head[1], body[49] op[0x6e]

op hex (1)
0000   0x6e                                       n
decimal
        110
datetime (2014-11-08T00:00:00)
0000   0xa7 0x8e                                  ..
body (49)
hex
0000   0x05 0x00 0x83 0x75 0x83 0x03 0x00 0x00    ...u....
0008   0x0c 0x52 0x05 0x8e 0x2d 0x06 0xc4 0x37    .R..-..7
0010   0x01 0x9b 0x05 0xe8 0x00 0x00 0x00 0xdc    ........
0018   0x00 0x00 0x06 0x00 0x01 0x00 0x00 0x00    ........
0020   0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x91    ........
0028   0x91 0x00 0x00 0x00 0x00 0x00 0x00 0x00    ........
0030   0x00                                       .
decimal
          5    0  131  117  131    3    0    0
         12   82    5  142   45    6  196   55
          1  155    5  232    0    0    0  220
          0    0    6    0    1    0    0    0
          0    0    0    0    0    0    0  145
        145    0    0    0    0    0    0    0
          0
HOUR BITS: [1, 0, 0]

RECORD 12 CalBGForPH 2014-11-08T00:28:02 head[2], body[0] op[0x0a]

DECODED
{'amount': 107}
op hex (2)
0000   0x0a 0x6b                                  .k
decimal
         10  107
datetime (2014-11-08T00:28:02)
0000   0x82 0xdc 0x20 0x08 0x0e                   .. ..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 13 BolusWizard 2014-11-08T00:28:05 head[2], body[15] op[0x5b]

DECODED
{'bg': 107,
 'bg_target_high': 140,
 'bg_target_low': 110,
 'bolus_estimate': 0.0,
 'carb_input': 0,
 'carb_ratio': 12.0,
 'correction_estimate': -0.05,
 'food_estimate': 0.0,
 'sensitivity': 70,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x6b                                  [k
decimal
         91  107
datetime (2014-11-08T00:28:05)
0000   0x85 0xdc 0x00 0x08 0x0e                   .....
body (15)
hex
0000   0x00 0x50 0x00 0x8c 0x46 0x6e 0xfe 0x00    .P..Fn..
0008   0x00 0xf8 0x00 0x00 0x00 0x00 0x78         ......x
decimal
          0   80    0  140   70  110  254    0
          0  248    0    0    0    0  120
HOUR BITS: [1, 1, 0]

RECORD 14 UnabsorbedInsulinBolus unknown head[14], body[0] op[0x5c]

DECODED
[{'age': 38, 'amount': 6.0, 'curve': 208},
 {'age': 48, 'amount': 5.2, 'curve': 208},
 {'age': 158, 'amount': 6.35, 'curve': 208},
 {'age': 168, 'amount': 0.65, 'curve': 208}]
op hex (14)
0000   0x5c 0x0e 0xf0 0x26 0xd0 0xd0 0x30 0xd0    \..&..0.
0008   0xfe 0x9e 0xd0 0x1a 0xa8 0xd0              ......
decimal
         92   14  240   38  208  208   48  208
        254  158  208   26  168  208
datetime (unknown)

body (0)

RECORD 15 TempBasal 2014-11-08T00:44:20 head[2], body[1] op[0x33]

DECODED
{'rate': 0.375}
op hex (2)
0000   0x33 0x0f                                  3.
decimal
         51   15
datetime (2014-11-08T00:44:20)
0000   0x94 0xec 0x00 0x08 0x0e                   .....
body (1)
hex
0000   0x08                                       .
decimal
          8
HOUR BITS: [1, 1, 1]

RECORD 16 TempBasalDuration 2014-11-08T00:44:20 head[2], body[0] op[0x16]

DECODED
{'duration (min)': 120}
op hex (2)
0000   0x16 0x04                                  ..
decimal
         22    4
datetime (2014-11-08T00:44:20)
0000   0x94 0xec 0x00 0x08 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 1]

RECORD 17 BolusWizard 2014-11-08T01:07:09 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 140,
 'bg_target_low': 110,
 'bolus_estimate': 1.4,
 'carb_input': 20,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 1.4,
 'sensitivity': 70,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T01:07:09)
0000   0x89 0xc7 0x01 0x08 0x0e                   .....
body (15)
hex
0000   0x14 0x50 0x00 0x8c 0x46 0x6e 0x00 0x00    .P..Fn..
0008   0x38 0x00 0x00 0x00 0x00 0x38 0x78         8....8x
decimal
         20   80    0  140   70  110    0    0
         56    0    0    0    0   56  120
HOUR BITS: [1, 1, 0]

RECORD 18 UnabsorbedInsulinBolus unknown head[14], body[0] op[0x5c]

DECODED
[{'age': 77, 'amount': 6.0, 'curve': 208},
 {'age': 87, 'amount': 5.2, 'curve': 208},
 {'age': 197, 'amount': 6.35, 'curve': 208},
 {'age': 207, 'amount': 0.65, 'curve': 208}]
op hex (14)
0000   0x5c 0x0e 0xf0 0x4d 0xd0 0xd0 0x57 0xd0    \..M..W.
0008   0xfe 0xc5 0xd0 0x1a 0xcf 0xd0              ......
decimal
         92   14  240   77  208  208   87  208
        254  197  208   26  207  208
datetime (unknown)

body (0)

RECORD 19 Base (2014, 11, 8, 1, 7, 42) head[2], body[0] op[0x68]

op hex (2)
0000   0x68 0xc5                                  h.
decimal
        104  197
datetime ((2014, 11, 8, 1, 7, 42))
0000   0xaa 0xc7 0x61 0x08 0x0e                   ..a..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 20 MResultTotals 2001-12-08T00:00:00 head[5], body[3] op[0x07]

op hex (5)
0000   0x07 0x00 0x67 0xc5 0xba                   ..g..
decimal
          7    0  103  197  186
datetime (2001-12-08T00:00:00)
0000   0xc7 0x61                                  .a
body (3)
hex
0000   0x08 0x0e 0x08                             ...
decimal
          8   14    8
HOUR BITS: [0, 1, 1]

RECORD 21 Base (2008, 6, 1, 8, 33, 36) head[2], body[0] op[0x00]

op hex (2)
0000   0x00 0x57                                  .W
decimal
          0   87
datetime ((2008, 6, 1, 8, 33, 36))
0000   0x64 0xa1 0xc8 0x01 0x08                   d....
body (0)
HOUR BITS: [1, 0, 1]

RECORD 22 Base (2008, 2, 2, 12, 20, 0) head[2], body[0] op[0x0e]

op hex (2)
0000   0x0e 0x7b                                  .{
decimal
         14  123
datetime ((2008, 2, 2, 12, 20, 0))
0000   0x00 0x94 0xec 0x02 0x08                   .....
body (0)
HOUR BITS: [1, 0, 0]

RECORD 23 Base (2000, 0, 1, 27, 0, 44) head[2], body[0] op[0x0e]

op hex (2)
0000   0x0e 0x00                                  ..
decimal
         14    0
datetime ((2000, 0, 1, 27, 0, 44))
0000   0x2c 0x00 0x7b 0x01 0x80                   ,.{..
body (0)
YEAR BITS: [1, 0, 0, 0]

RECORD 24 Base (2000, 0, 28, 8, 14, 8) head[2], body[0] op[0xc0]

op hex (2)
0000   0xc0 0x04                                  ..
decimal
        192    4
datetime ((2000, 0, 28, 8, 14, 8))
0000   0x08 0x0e 0x08 0x3c 0x00                   ...<.
body (0)
DAY BITS: [0, 0, 1]

RECORD 25 BolusWizard 2014-11-08T05:57:48 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 85,
 'bg_target_low': 110,
 'bolus_estimate': 0.0,
 'carb_input': 0,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 0.0,
 'sensitivity': 70,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T05:57:48)
0000   0xb0 0xf9 0x05 0x08 0x0e                   .....
body (15)
hex
0000   0x00 0x50 0x00 0x55 0x46 0x6e 0x00 0x00    .P.UFn..
0008   0x00 0x00 0x00 0x00 0x00 0x00 0x78         ......x
decimal
          0   80    0   85   70  110    0    0
          0    0    0    0    0    0  120
HOUR BITS: [1, 1, 1]

RECORD 26 Ian69 2014-11-08T05:57:48 head[2], body[2] op[0x69]

op hex (2)
0000   0x69 0xc5                                  i.
decimal
        105  197
datetime (2014-11-08T05:57:48)
0000   0xb0 0xf9 0x65 0x08 0x0e                   ..e..
body (2)
hex
0000   0x08 0x00                                  ..
decimal
          8    0
HOUR BITS: [1, 1, 1]

RECORD 27 Bolus 2014-11-08T05:57:48 head[8], body[0] op[0x01]

DECODED
{'amount': 0.7,
 'duration': 0,
 'programmed': 0.7,
 'type': 'normal',
 'unabsorbed': 0.0}
op hex (8)
0000   0x01 0x00 0x1c 0x00 0x1c 0x00 0x00 0x00    ........
decimal
          1    0   28    0   28    0    0    0
datetime (2014-11-08T05:57:48)
0000   0xb0 0xf9 0x25 0x08 0x0e                   ..%..
body (0)
HOUR BITS: [1, 1, 1]

RECORD 28 BasalProfileStart 2014-11-08T06:30:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 23400000, 'rate': 1.85}
op hex (2)
0000   0x7b 0x02                                  {.
decimal
        123    2
datetime (2014-11-08T06:30:00)
0000   0x80 0xde 0x06 0x08 0x0e                   .....
body (3)
hex
0000   0x0d 0x4a 0x00                             .J.
decimal
         13   74    0
HOUR BITS: [1, 1, 0]

RECORD 29 BasalProfileStart 2014-11-08T07:30:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 27000000, 'rate': 1.75}
op hex (2)
0000   0x7b 0x03                                  {.
decimal
        123    3
datetime (2014-11-08T07:30:00)
0000   0x80 0xde 0x07 0x08 0x0e                   .....
body (3)
hex
0000   0x0f 0x46 0x00                             .F.
decimal
         15   70    0
HOUR BITS: [1, 1, 0]

RECORD 30 BasalProfileStart 2014-11-08T09:00:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 32400000, 'rate': 1.35}
op hex (2)
0000   0x7b 0x04                                  {.
decimal
        123    4
datetime (2014-11-08T09:00:00)
0000   0x80 0xc0 0x09 0x08 0x0e                   .....
body (3)
hex
0000   0x12 0x36 0x00                             .6.
decimal
         18   54    0
HOUR BITS: [1, 1, 0]

RECORD 31 BolusWizard 2014-11-08T10:11:57 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 90,
 'bg_target_low': 110,
 'bolus_estimate': 4.7,
 'carb_input': 100,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 4.7,
 'sensitivity': 65,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T10:11:57)
0000   0xb9 0xcb 0x0a 0x08 0x0e                   .....
body (15)
hex
0000   0x64 0x50 0x00 0x5a 0x41 0x6e 0x00 0x01    dP.ZAn..
0008   0xbc 0x00 0x00 0x00 0x01 0xbc 0x78         ......x
decimal
        100   80    0   90   65  110    0    1
        188    0    0    0    1  188  120
HOUR BITS: [1, 1, 0]

RECORD 32 UnabsorbedInsulinBolus unknown head[5], body[0] op[0x5c]

DECODED
[{'age': 1, 'amount': 0.7, 'curve': 208}]
op hex (5)
0000   0x5c 0x05 0x1c 0x01 0xd0                   \....
decimal
         92    5   28    1  208
datetime (unknown)

body (0)

RECORD 33 Bolus 2014-11-08T10:11:57 head[8], body[0] op[0x01]

DECODED
{'amount': 4.7,
 'duration': 0,
 'programmed': 4.7,
 'type': 'normal',
 'unabsorbed': 0.0}
op hex (8)
0000   0x01 0x01 0xbc 0x01 0xbc 0x00 0x00 0x00    ........
decimal
          1    1  188    1  188    0    0    0
datetime (2014-11-08T10:11:57)
0000   0xb9 0xcb 0x2a 0x08 0x0e                   ..*..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 34 BasalProfileStart 2014-11-08T12:00:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 43200000, 'rate': 1.5}
op hex (2)
0000   0x7b 0x05                                  {.
decimal
        123    5
datetime (2014-11-08T12:00:00)
0000   0x80 0xc0 0x0c 0x08 0x0e                   .....
body (3)
hex
0000   0x18 0x3c 0x00                             .<.
decimal
         24   60    0
HOUR BITS: [1, 1, 0]

RECORD 35 Ian69 2014-11-08T12:30:00 head[2], body[2] op[0x69]

op hex (2)
0000   0x69 0xcb                                  i.
decimal
        105  203
datetime (2014-11-08T12:30:00)
0000   0x80 0xde 0x6c 0x08 0x0e                   ..l..
body (2)
hex
0000   0x2c 0x1e                                  ,.
decimal
         44   30
HOUR BITS: [1, 1, 0]

RECORD 36 BasalProfileStart 2014-11-08T13:30:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 48600000, 'rate': 1.5}
op hex (2)
0000   0x7b 0x06                                  {.
decimal
        123    6
datetime (2014-11-08T13:30:00)
0000   0x80 0xde 0x0d 0x08 0x0e                   .....
body (3)
hex
0000   0x1b 0x3c 0x00                             .<.
decimal
         27   60    0
HOUR BITS: [1, 1, 0]

RECORD 37 Bolus 2014-11-08T13:29:31 head[8], body[0] op[0x01]

DECODED
{'amount': 0.5,
 'duration': 0,
 'programmed': 0.5,
 'type': 'normal',
 'unabsorbed': 0.0}
op hex (8)
0000   0x01 0x00 0x14 0x00 0x14 0x00 0x00 0x00    ........
decimal
          1    0   20    0   20    0    0    0
datetime (2014-11-08T13:29:31)
0000   0x9f 0xdd 0x2d 0x68 0x0e                   ..-h.
body (0)
HOUR BITS: [1, 1, 0] DAY BITS: [0, 1, 1]

RECORD 38 BolusWizard 2014-11-08T14:55:20 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 3.0,
 'carb_input': 30,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 3.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T14:55:20)
0000   0x94 0xf7 0x0e 0x08 0x0e                   .....
body (15)
hex
0000   0x1e 0x50 0x00 0x64 0x35 0x6e 0x00 0x00    .P.d5n..
0008   0x78 0x00 0x00 0x00 0x00 0x78 0x78         x....xx
decimal
         30   80    0  100   53  110    0    0
        120    0    0    0    0  120  120
HOUR BITS: [1, 1, 1]

RECORD 39 UnabsorbedInsulinBolus unknown head[11], body[0] op[0x5c]

DECODED
[{'age': 91, 'amount': 0.5, 'curve': 192},
 {'age': 25, 'amount': 5.1, 'curve': 208},
 {'age': 35, 'amount': 6.0, 'curve': 208}]
op hex (11)
0000   0x5c 0x0b 0x14 0x5b 0xc0 0xcc 0x19 0xd0    \..[....
0008   0xf0 0x23 0xd0                             .#.
decimal
         92   11   20   91  192  204   25  208
        240   35  208
datetime (unknown)

body (0)

RECORD 40 Bolus 2014-11-08T14:55:20 head[8], body[0] op[0x01]

DECODED
{'amount': 3.0,
 'duration': 0,
 'programmed': 3.0,
 'type': 'normal',
 'unabsorbed': 0.3}
op hex (8)
0000   0x01 0x00 0x78 0x00 0x78 0x00 0x0c 0x00    ..x.x...
decimal
          1    0  120    0  120    0   12    0
datetime (2014-11-08T14:55:20)
0000   0x94 0xf7 0x2e 0x08 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 1]

RECORD 41 BasalProfileStart 2014-11-08T15:00:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 54000000, 'rate': 1.55}
op hex (2)
0000   0x7b 0x07                                  {.
decimal
        123    7
datetime (2014-11-08T15:00:00)
0000   0x80 0xc0 0x0f 0x08 0x0e                   .....
body (3)
hex
0000   0x1e 0x3e 0x00                             .>.
decimal
         30   62    0
HOUR BITS: [1, 1, 0]

RECORD 42 CalBGForPH 2014-11-08T15:28:58 head[2], body[0] op[0x0a]

DECODED
{'amount': 271}
op hex (2)
0000   0x0a 0x0f                                  ..
decimal
         10   15
datetime (2014-11-08T15:28:58)
0000   0xba 0xdc 0x2f 0x08 0x8e                   ../..
body (0)
HOUR BITS: [1, 1, 0] YEAR BITS: [1, 0, 0, 0]

RECORD 43 BolusWizard 2014-11-08T15:29:08 head[2], body[15] op[0x5b]

DECODED
{'bg': 271,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 0.0,
 'carb_input': 0,
 'carb_ratio': 12.0,
 'correction_estimate': 2.8,
 'food_estimate': 0.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 2.8}
op hex (2)
0000   0x5b 0x0f                                  [.
decimal
         91   15
datetime (2014-11-08T15:29:08)
0000   0x88 0xdd 0x0f 0x08 0x0e                   .....
body (15)
hex
0000   0x00 0x51 0x00 0x64 0x35 0x6e 0x70 0x00    .Q.d5np.
0008   0x00 0x00 0x00 0x70 0x00 0x00 0x78         ...p..x
decimal
          0   81    0  100   53  110  112    0
          0    0    0  112    0    0  120
HOUR BITS: [1, 1, 0]

RECORD 44 UnabsorbedInsulinBolus unknown head[14], body[0] op[0x5c]

DECODED
[{'age': 35, 'amount': 3.0, 'curve': 192},
 {'age': 125, 'amount': 0.5, 'curve': 192},
 {'age': 59, 'amount': 5.1, 'curve': 208},
 {'age': 69, 'amount': 6.0, 'curve': 208}]
op hex (14)
0000   0x5c 0x0e 0x78 0x23 0xc0 0x14 0x7d 0xc0    \.x#..}.
0008   0xcc 0x3b 0xd0 0xf0 0x45 0xd0              .;..E.
decimal
         92   14  120   35  192   20  125  192
        204   59  208  240   69  208
datetime (unknown)

body (0)

RECORD 45 Bolus 2014-11-08T15:29:09 head[8], body[0] op[0x01]

DECODED
{'amount': 1.5,
 'duration': 0,
 'programmed': 1.5,
 'type': 'normal',
 'unabsorbed': 2.8}
op hex (8)
0000   0x01 0x00 0x3c 0x00 0x3c 0x00 0x70 0x00    ..<.<.p.
decimal
          1    0   60    0   60    0  112    0
datetime (2014-11-08T15:29:09)
0000   0x89 0xdd 0x2f 0x08 0x0e                   ../..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 46 BolusWizard 2014-11-08T15:40:19 head[2], body[15] op[0x5b]

DECODED
{'bg': 271,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 4.0,
 'carb_input': 40,
 'carb_ratio': 12.0,
 'correction_estimate': 2.8,
 'food_estimate': 4.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 4.0}
op hex (2)
0000   0x5b 0x0f                                  [.
decimal
         91   15
datetime (2014-11-08T15:40:19)
0000   0x93 0xe8 0x0f 0x08 0x0e                   .....
body (15)
hex
0000   0x28 0x51 0x00 0x64 0x35 0x6e 0x70 0x00    (Q.d5np.
0008   0xa0 0x00 0x00 0xa0 0x00 0xa0 0x78         ......x
decimal
         40   81    0  100   53  110  112    0
        160    0    0  160    0  160  120
HOUR BITS: [1, 1, 1]

RECORD 47 UnabsorbedInsulinBolus unknown head[17], body[0] op[0x5c]

DECODED
[{'age': 16, 'amount': 1.5, 'curve': 192},
 {'age': 46, 'amount': 3.0, 'curve': 192},
 {'age': 136, 'amount': 0.5, 'curve': 192},
 {'age': 70, 'amount': 5.1, 'curve': 208},
 {'age': 80, 'amount': 6.0, 'curve': 208}]
op hex (17)
0000   0x5c 0x11 0x3c 0x10 0xc0 0x78 0x2e 0xc0    \.<..x..
0008   0x14 0x88 0xc0 0xcc 0x46 0xd0 0xf0 0x50    ....F..P
0010   0xd0                                       .
decimal
         92   17   60   16  192  120   46  192
         20  136  192  204   70  208  240   80
        208
datetime (unknown)

body (0)

RECORD 48 Bolus 2014-11-08T15:40:19 head[8], body[0] op[0x01]

DECODED
{'amount': 5.0,
 'duration': 0,
 'programmed': 5.0,
 'type': 'normal',
 'unabsorbed': 4.0}
op hex (8)
0000   0x01 0x00 0xc8 0x00 0xc8 0x00 0xa0 0x00    ........
decimal
          1    0  200    0  200    0  160    0
datetime (2014-11-08T15:40:19)
0000   0x93 0xe8 0x2f 0x08 0x0e                   ../..
body (0)
HOUR BITS: [1, 1, 1]

RECORD 49 TempBasal 2014-11-08T16:41:45 head[2], body[1] op[0x33]

DECODED
{'rate': 4.125}
op hex (2)
0000   0x33 0xa5                                  3.
decimal
         51  165
datetime (2014-11-08T16:41:45)
0000   0xad 0xe9 0x10 0x08 0x0e                   .....
body (1)
hex
0000   0x08                                       .
decimal
          8
HOUR BITS: [1, 1, 1]

RECORD 50 TempBasalDuration 2014-11-08T16:41:45 head[2], body[0] op[0x16]

DECODED
{'duration (min)': 360}
op hex (2)
0000   0x16 0x0c                                  ..
decimal
         22   12
datetime (2014-11-08T16:41:45)
0000   0xad 0xe9 0x10 0x08 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 1]

RECORD 51 Bolus 2014-11-08T16:42:01 head[8], body[0] op[0x01]

DECODED
{'amount': 1.0,
 'duration': 0,
 'programmed': 1.0,
 'type': 'normal',
 'unabsorbed': 5.2}
op hex (8)
0000   0x01 0x00 0x28 0x00 0x28 0x00 0xd0 0x00    ..(.(...
decimal
          1    0   40    0   40    0  208    0
datetime (2014-11-08T16:42:01)
0000   0x81 0xea 0x30 0x68 0x0e                   ..0h.
body (0)
HOUR BITS: [1, 1, 1] DAY BITS: [0, 1, 1]

RECORD 52 BolusWizard 2014-11-08T17:01:59 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 1.6,
 'carb_input': 80,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 1.6,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T17:01:59)
0000   0xbb 0xc1 0x11 0x08 0x0e                   .....
body (15)
hex
0000   0x50 0x50 0x00 0x64 0x35 0x6e 0x00 0x01    PP.d5n..
0008   0x40 0x00 0x00 0x00 0x01 0x40 0x78         @....@x
decimal
         80   80    0  100   53  110    0    1
         64    0    0    0    1   64  120
HOUR BITS: [1, 1, 0]

RECORD 53 UnabsorbedInsulinBolus unknown head[23], body[0] op[0x5c]

DECODED
[{'age': 27, 'amount': 1.0, 'curve': 192},
 {'age': 87, 'amount': 5.0, 'curve': 192},
 {'age': 97, 'amount': 1.5, 'curve': 192},
 {'age': 127, 'amount': 3.0, 'curve': 192},
 {'age': 217, 'amount': 0.5, 'curve': 192},
 {'age': 151, 'amount': 5.1, 'curve': 208},
 {'age': 161, 'amount': 6.0, 'curve': 208}]
op hex (23)
0000   0x5c 0x17 0x28 0x1b 0xc0 0xc8 0x57 0xc0    \.(...W.
0008   0x3c 0x61 0xc0 0x78 0x7f 0xc0 0x14 0xd9    <a.x....
0010   0xc0 0xcc 0x97 0xd0 0xf0 0xa1 0xd0         .......
decimal
         92   23   40   27  192  200   87  192
         60   97  192  120  127  192   20  217
        192  204  151  208  240  161  208
datetime (unknown)

body (0)

RECORD 54 Bolus 2014-11-08T17:01:59 head[8], body[0] op[0x01]

DECODED
{'amount': 1.6,
 'duration': 0,
 'programmed': 1.6,
 'type': 'normal',
 'unabsorbed': 4.6}
op hex (8)
0000   0x01 0x01 0x40 0x01 0x40 0x00 0xb8 0x00    ..@.@...
decimal
          1    1   64    1   64    0  184    0
datetime (2014-11-08T17:01:59)
0000   0xbb 0xc1 0x31 0x08 0x0e                   ..1..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 55 BolusWizard 2014-11-08T17:22:47 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 4.0,
 'carb_input': 40,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 4.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T17:22:47)
0000   0xaf 0xd6 0x11 0x08 0x0e                   .....
body (15)
hex
0000   0x28 0x50 0x00 0x64 0x35 0x6e 0x00 0x00    (P.d5n..
0008   0xa0 0x00 0x00 0x00 0x00 0xa0 0x78         ......x
decimal
         40   80    0  100   53  110    0    0
        160    0    0    0    0  160  120
HOUR BITS: [1, 1, 0]

RECORD 56 UnabsorbedInsulinBolus unknown head[29], body[0] op[0x5c]

DECODED
[{'age': 18, 'amount': 4.55, 'curve': 192},
 {'age': 28, 'amount': 3.45, 'curve': 192},
 {'age': 48, 'amount': 1.0, 'curve': 192},
 {'age': 108, 'amount': 5.0, 'curve': 192},
 {'age': 118, 'amount': 1.5, 'curve': 192},
 {'age': 148, 'amount': 3.0, 'curve': 192},
 {'age': 238, 'amount': 0.5, 'curve': 192},
 {'age': 172, 'amount': 5.1, 'curve': 208},
 {'age': 182, 'amount': 6.0, 'curve': 208}]
op hex (29)
0000   0x5c 0x1d 0xb6 0x12 0xc0 0x8a 0x1c 0xc0    \.......
0008   0x28 0x30 0xc0 0xc8 0x6c 0xc0 0x3c 0x76    (0..l.<v
0010   0xc0 0x78 0x94 0xc0 0x14 0xee 0xc0 0xcc    .x......
0018   0xac 0xd0 0xf0 0xb6 0xd0                   .....
decimal
         92   29  182   18  192  138   28  192
         40   48  192  200  108  192   60  118
        192  120  148  192   20  238  192  204
        172  208  240  182  208
datetime (unknown)

body (0)

RECORD 57 PumpSuspend 2014-11-08T17:23:19 head[2], body[0] op[0x1e]

op hex (2)
0000   0x1e 0x01                                  ..
decimal
         30    1
datetime (2014-11-08T17:23:19)
0000   0x93 0xd7 0x11 0x08 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 0]

RECORD 58 Bolus 2014-11-08T17:22:47 head[8], body[0] op[0x01]

DECODED
{'amount': 0.8,
 'duration': 0,
 'programmed': 4.0,
 'type': 'normal',
 'unabsorbed': 4.4}
op hex (8)
0000   0x01 0x00 0xa0 0x00 0x20 0x01 0xb0 0x00    .... ...
decimal
          1    0  160    0   32    1  176    0
datetime (2014-11-08T17:22:47)
0000   0xaf 0xd6 0x31 0x08 0x0e                   ..1..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 59 PumpResume 2014-11-08T17:23:21 head[2], body[0] op[0x1f]

op hex (2)
0000   0x1f 0x20                                  . 
decimal
         31   32
datetime (2014-11-08T17:23:21)
0000   0x95 0xd7 0x11 0x08 0x0e                   .....
body (0)
HOUR BITS: [1, 1, 0]

RECORD 60 BolusWizard 2014-11-08T17:25:45 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 4.0,
 'carb_input': 40,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 4.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T17:25:45)
0000   0xad 0xd9 0x11 0x08 0x0e                   .....
body (15)
hex
0000   0x28 0x50 0x00 0x64 0x35 0x6e 0x00 0x00    (P.d5n..
0008   0xa0 0x00 0x00 0x00 0x00 0xa0 0x78         ......x
decimal
         40   80    0  100   53  110    0    0
        160    0    0    0    0  160  120
HOUR BITS: [1, 1, 0]

RECORD 61 UnabsorbedInsulinBolus unknown head[32], body[0] op[0x5c]

DECODED
[{'age': 11, 'amount': 0.8, 'curve': 192},
 {'age': 21, 'amount': 4.55, 'curve': 192},
 {'age': 31, 'amount': 3.45, 'curve': 192},
 {'age': 51, 'amount': 1.0, 'curve': 192},
 {'age': 111, 'amount': 5.0, 'curve': 192},
 {'age': 121, 'amount': 1.5, 'curve': 192},
 {'age': 151, 'amount': 3.0, 'curve': 192},
 {'age': 241, 'amount': 0.5, 'curve': 192},
 {'age': 175, 'amount': 5.1, 'curve': 208},
 {'age': 185, 'amount': 6.0, 'curve': 208}]
op hex (32)
0000   0x5c 0x20 0x20 0x0b 0xc0 0xb6 0x15 0xc0    \  .....
0008   0x8a 0x1f 0xc0 0x28 0x33 0xc0 0xc8 0x6f    ...(3..o
0010   0xc0 0x3c 0x79 0xc0 0x78 0x97 0xc0 0x14    .<y.x...
0018   0xf1 0xc0 0xcc 0xaf 0xd0 0xf0 0xb9 0xd0    ........
decimal
         92   32   32   11  192  182   21  192
        138   31  192   40   51  192  200  111
        192   60  121  192  120  151  192   20
        241  192  204  175  208  240  185  208
datetime (unknown)

body (0)

RECORD 62 BolusWizard 2014-11-08T20:17:27 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 0.0,
 'carb_input': 0,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 0.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T20:17:27)
0000   0x9b 0xd1 0x14 0x08 0x0e                   .....
body (15)
hex
0000   0x00 0x50 0x00 0x64 0x35 0x6e 0x00 0x00    .P.d5n..
0008   0x00 0x00 0x00 0x00 0x00 0x00 0x78         ......x
decimal
          0   80    0  100   53  110    0    0
          0    0    0    0    0    0  120
HOUR BITS: [1, 1, 0]

RECORD 63 UnabsorbedInsulinBolus unknown head[26], body[0] op[0x5c]

DECODED
[{'age': 183, 'amount': 0.8, 'curve': 192},
 {'age': 193, 'amount': 4.55, 'curve': 192},
 {'age': 203, 'amount': 3.45, 'curve': 192},
 {'age': 223, 'amount': 1.0, 'curve': 192},
 {'age': 27, 'amount': 5.0, 'curve': 208},
 {'age': 37, 'amount': 1.5, 'curve': 208},
 {'age': 67, 'amount': 3.0, 'curve': 208},
 {'age': 157, 'amount': 0.5, 'curve': 208}]
op hex (26)
0000   0x5c 0x1a 0x20 0xb7 0xc0 0xb6 0xc1 0xc0    \. .....
0008   0x8a 0xcb 0xc0 0x28 0xdf 0xc0 0xc8 0x1b    ...(....
0010   0xd0 0x3c 0x25 0xd0 0x78 0x43 0xd0 0x14    .<%.xC..
0018   0x9d 0xd0                                  ..
decimal
         92   26   32  183  192  182  193  192
        138  203  192   40  223  192  200   27
        208   60   37  208  120   67  208   20
        157  208
datetime (unknown)

body (0)

RECORD 64 Bolus 2014-11-08T20:17:27 head[8], body[0] op[0x01]

DECODED
{'amount': 1.0,
 'duration': 0,
 'programmed': 1.0,
 'type': 'normal',
 'unabsorbed': 0.0}
op hex (8)
0000   0x01 0x00 0x28 0x00 0x28 0x00 0x00 0x00    ..(.(...
decimal
          1    0   40    0   40    0    0    0
datetime (2014-11-08T20:17:27)
0000   0x9b 0xd1 0x34 0x08 0x0e                   ..4..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 65 BolusWizard 2014-11-08T20:25:05 head[2], body[15] op[0x5b]

DECODED
{'bg': 0,
 'bg_target_high': 100,
 'bg_target_low': 110,
 'bolus_estimate': 6.0,
 'carb_input': 60,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 6.0,
 'sensitivity': 53,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T20:25:05)
0000   0x85 0xd9 0x14 0x08 0x0e                   .....
body (15)
hex
0000   0x3c 0x50 0x00 0x64 0x35 0x6e 0x00 0x00    <P.d5n..
0008   0xf0 0x00 0x00 0x00 0x00 0xf0 0x78         ......x
decimal
         60   80    0  100   53  110    0    0
        240    0    0    0    0  240  120
HOUR BITS: [1, 1, 0]

RECORD 66 UnabsorbedInsulinBolus unknown head[29], body[0] op[0x5c]

DECODED
[{'age': 11, 'amount': 1.0, 'curve': 192},
 {'age': 191, 'amount': 0.8, 'curve': 192},
 {'age': 201, 'amount': 4.55, 'curve': 192},
 {'age': 211, 'amount': 3.45, 'curve': 192},
 {'age': 231, 'amount': 1.0, 'curve': 192},
 {'age': 35, 'amount': 5.0, 'curve': 208},
 {'age': 45, 'amount': 1.5, 'curve': 208},
 {'age': 75, 'amount': 3.0, 'curve': 208},
 {'age': 165, 'amount': 0.5, 'curve': 208}]
op hex (29)
0000   0x5c 0x1d 0x28 0x0b 0xc0 0x20 0xbf 0xc0    \.(.. ..
0008   0xb6 0xc9 0xc0 0x8a 0xd3 0xc0 0x28 0xe7    ......(.
0010   0xc0 0xc8 0x23 0xd0 0x3c 0x2d 0xd0 0x78    ..#.<-.x
0018   0x4b 0xd0 0x14 0xa5 0xd0                   K....
decimal
         92   29   40   11  192   32  191  192
        182  201  192  138  211  192   40  231
        192  200   35  208   60   45  208  120
         75  208   20  165  208
datetime (unknown)

body (0)

RECORD 67 Bolus 2014-11-08T20:25:06 head[8], body[0] op[0x01]

DECODED
{'amount': 6.0,
 'duration': 0,
 'programmed': 6.0,
 'type': 'normal',
 'unabsorbed': 1.0}
op hex (8)
0000   0x01 0x00 0xf0 0x00 0xf0 0x00 0x28 0x00    ......(.
decimal
          1    0  240    0  240    0   40    0
datetime (2014-11-08T20:25:06)
0000   0x86 0xd9 0x34 0x08 0x0e                   ..4..
body (0)
HOUR BITS: [1, 1, 0]

RECORD 68 BasalProfileStart 2014-11-08T22:41:45 head[2], body[3] op[0x7b]

DECODED
{'offset': 73800000, 'rate': 1.6500000000000001}
op hex (2)
0000   0x7b 0x09                                  {.
decimal
        123    9
datetime (2014-11-08T22:41:45)
0000   0xad 0xe9 0x16 0x08 0x0e                   .....
body (3)
hex
0000   0x29 0x42 0x00                             )B.
decimal
         41   66    0
HOUR BITS: [1, 1, 1]

RECORD 69 BasalProfileStart 2014-11-09T00:00:00 head[2], body[3] op[0x7b]

DECODED
{'offset': 0, 'rate': 1.1}
op hex (2)
0000   0x7b 0x00                                  {.
decimal
        123    0
datetime (2014-11-09T00:00:00)
0000   0x80 0xc0 0x00 0x09 0x0e                   .....
body (3)
hex
0000   0x00 0x2c 0x00                             .,.
decimal
          0   44    0
HOUR BITS: [1, 1, 0]

RECORD 70 MResultTotals 2014-11-09T00:00:00 head[5], body[3] op[0x07]

op hex (5)
0000   0x07 0x00 0x00 0x0c 0x4e                   ....N
decimal
          7    0    0   12   78
datetime (2014-11-09T00:00:00)
0000   0xa8 0x8e                                  ..
body (3)
hex
0000   0x00 0x00 0x00                             ...
decimal
          0    0    0
HOUR BITS: [1, 0, 0]

RECORD 71 Base unknown head[2], body[0] op[0xd4]

op hex (2)
0000   0xd4 0xe9                                  ..
decimal
        212  233
datetime (unknown)

body (0)

end ReadHistoryData-page-2.data: 72 records

kenstack avatar Nov 09 '14 20:11 kenstack

Which record number? FWIW, something interesting/odd/weird happened around record 19... not sure if I trust anything after that unknown Base record... Is it possible to match this data with csv records from carelink exported csv? Basically, I'd like to compare each record against the csv if possible.

For 10:11am, I suspect you mean record 31 - 33? 33 claims to be 4.7 units, and it's actually 11.1, is that correct?

bewest avatar Nov 09 '14 20:11 bewest

yes that is the correct record. Its quite strange not only is the bolus off but the carb ratio is wrong too. However I looked at all the following bolus's and they are all right except one other which is also wrong (and lower then it should be). The strange part is even the estimates bolus's are wrong. But again vast majority of bolus info before and after that record are correct.

I will upload tonight and post this evening thanks so much!

kenstack avatar Nov 09 '14 20:11 kenstack

Awesome, this is incredibly useful. The key will be analyzing those raw bytes versus the correct values for many records. After doing this a few dozen times, it'll become painfully obvious how to fix the bug.

For now, the most alarming records are 31 and 33, which are definitely wrong.

RECORD 31 BolusWizard 2014-11-08T10:11:57 head[2], body[15] op[0x5b]

DECODED

{'bg': 0,
 'bg_target_high': 90,
 'bg_target_low': 110,
 'bolus_estimate': 4.7,
 'carb_input': 100,
 'carb_ratio': 12.0,
 'correction_estimate': 0.0,
 'food_estimate': 4.7,
 'sensitivity': 65,
 'unabsorbed_insulin_total': 0.0}
op hex (2)
0000   0x5b 0x00                                  [.
decimal
         91    0
datetime (2014-11-08T10:11:57)
0000   0xb9 0xcb 0x0a 0x08 0x0e                   .....
body (15)
hex
0000   0x64 0x50 0x00 0x5a 0x41 0x6e 0x00 0x01    dP.ZAn..
0008   0xbc 0x00 0x00 0x00 0x01 0xbc 0x78         ......x
decimal
        100   80    0   90   65  110    0    1
        188    0    0    0    1  188  120
HOUR BITS: [1, 1, 0]
RECORD 32 UnabsorbedInsulinBolus unknown head[5], body[0] op[0x5c]

DECODED

[{'age': 1, 'amount': 0.7, 'curve': 208}]
op hex (5)
0000   0x5c 0x05 0x1c 0x01 0xd0                   \....
decimal
         92    5   28    1  208
datetime (unknown)

body (0)
RECORD 33 Bolus 2014-11-08T10:11:57 head[8], body[0] op[0x01]

DECODED

{'amount': 4.7,
 'duration': 0,
 'programmed': 4.7,
 'type': 'normal',
 'unabsorbed': 0.0}
op hex (8)
0000   0x01 0x01 0xbc 0x01 0xbc 0x00 0x00 0x00    ........
decimal
          1    1  188    1  188    0    0    0
datetime (2014-11-08T10:11:57)
0000   0xb9 0xcb 0x2a 0x08 0x0e                   ..*..
body (0)
HOUR BITS: [1, 1, 0]

correct

carb_ratio: 9
insulin estimate: 11.1

bewest avatar Nov 09 '14 20:11 bewest

Attached is the CSV - the only thing I did is x out the serial number. Notice that the records are indeed correct here.

Let me know if I can do anything else? I grabbed a few days.


Kenneth Stack

President Proximus, LLC M&A, Venture Capital, Advisors

2723 South State Street, Suite 150 Ann Arbor, MI 48104

734.330.6422 [email protected] www.proximusllc.com

CONFIDENTIALITY NOTE: This electronic transmission, including all attachments, is directed in confidence solely to the person(s) to whom it is addressed, or an authorized recipient, and may not otherwise be distributed, copied or disclosed. The contents of the transmission may also be subject to intellectual property rights and all such rights are expressly claimed and are not waived. If you have received this transmission in error, please notify the sender immediately by return electronic transmission and then immediately delete this transmission, including all attachments, without copying, distribution or disclosing same.

On Nov 9, 2014, at 3:58 PM, Ben West [email protected] wrote:

Awesome, this is incredibly useful. The key will be analyzing those raw bytes versus the correct values for many records. After doing this a few dozen times, it'll become painfully obvious how to fix the bug.

For now, the most alarming records are 31 and 33, which are definitely wrong.

RECORD 31 BolusWizard 2014-11-08T10:11:57 head[2], body[15] op[0x5b]

DECODED

{'bg': 0, 'bg_target_high': 90, 'bg_target_low': 110, 'bolus_estimate': 4.7, 'carb_input': 100, 'carb_ratio': 12.0, 'correction_estimate': 0.0, 'food_estimate': 4.7, 'sensitivity': 65, 'unabsorbed_insulin_total': 0.0} op hex (2) 0000 0x5b 0x00 [. decimal 91 0 datetime (2014-11-08T10:11:57) 0000 0xb9 0xcb 0x0a 0x08 0x0e ..... body (15) hex 0000 0x64 0x50 0x00 0x5a 0x41 0x6e 0x00 0x01 dP.ZAn.. 0008 0xbc 0x00 0x00 0x00 0x01 0xbc 0x78 ......x decimal 100 80 0 90 65 110 0 1 188 0 0 0 1 188 120 HOUR BITS: [1, 1, 0] RECORD 32 UnabsorbedInsulinBolus unknown head[5], body[0] op[0x5c]

DECODED

[{'age': 1, 'amount': 0.7, 'curve': 208}] op hex (5) 0000 0x5c 0x05 0x1c 0x01 0xd0 .... decimal 92 5 28 1 208 datetime (unknown)

body (0) RECORD 33 Bolus 2014-11-08T10:11:57 head[8], body[0] op[0x01]

DECODED

{'amount': 4.7, 'duration': 0, 'programmed': 4.7, 'type': 'normal', 'unabsorbed': 0.0} op hex (8) 0000 0x01 0x01 0xbc 0x01 0xbc 0x00 0x00 0x00 ........ decimal 1 1 188 1 188 0 0 0 datetime (2014-11-08T10:11:57) 0000 0xb9 0xcb 0x2a 0x08 0x0e ..*.. body (0) HOUR BITS: [1, 1, 0] correct

carb_ratio: 9

insulin estimate: 11.1

— Reply to this email directly or view it on GitHub.

kenstack avatar Nov 10 '14 01:11 kenstack

Sorry, github's interface doesn't handle attachments via email. I think any mailed attachment gets deleted. I think you need add it somewhere, either in a new directory under analysis/wizards/.... or http://gist.github.com/ also has a decent drag/drop pastebin type of thing.

bewest avatar Nov 10 '14 01:11 bewest

Only images are allowed here. For some reason I don't see any emails with attachments, I'm sure gist.github.com will take it.

bewest avatar Nov 10 '14 01:11 bewest

gave up on gist I could not figure out how to attach

https://drive.google.com/file/d/0B3PAWm32NxNNYVNBOHA0OUZoY2M/view?usp=sharing

that link should work

kenstack avatar Nov 10 '14 01:11 kenstack

Got it this time thank you!

-bewest

On Sun, Nov 9, 2014 at 5:57 PM, kenstack [email protected] wrote:

gave up on gist I could not figure out how to attach

https://drive.google.com/file/d/0B3PAWm32NxNNYVNBOHA0OUZoY2M/view?usp=sharing

that link should work

— Reply to this email directly or view it on GitHub https://github.com/bewest/decoding-carelink/issues/43#issuecomment-62331714 .

bewest avatar Nov 10 '14 02:11 bewest

Here is a new one - Im working on the bolus calculator right now. This is data from latest - check out the timestamps - they are all the current pump time. This only happened once. Its usually fine. In fact I cant reproduce it at the moment. Rest of the data looks right. I dont have the runs from it sorry this is from my code which is reading output from latest.

[ { "timestamp": "2014-11-14T11:04:39", "_type": "CalBGForPH", "amount": 112, "_description": "CalBGForPH 2014-11-14T11:04:39 head[2], body[0] op[0x0a]" }, { "_type": "BolusWizard", "bg": 112, "correction_estimate": 0.0, "unknown_byte[10]": 0, "_description": "BolusWizard 2014-11-14T11:04:43 head[2], body[13] op[0x5b]", "timestamp": "2014-11-14T11:04:43", "sensitivity": 65, "carb_input": 5, "bg_target_high": 120, "unabsorbed_insulin_total": 1.1, "_byte[5]": 0, "unabsorbed_insulin_count": "??", "_byte[7]": 0, "unknown_byte[8]": 0, "carb_ratio": 10, "food_estimate": 0.5, "bg_target_low": 100, "bolus_estimate": 0.5 }, { "programmed": 0.5, "_type": "Bolus", "_description": "Bolus 2014-11-14T11:04:43 head[4], body[0] op[0x01]", "duration": 0, "timestamp": "2014-11-14T11:04:43", "type": "normal", "amount": 0.5 }, { "timestamp": "2014-11-14T11:52:01", "_type": "TempBasal", "rate": 0.0, "_description": "TempBasal 2014-11-14T11:52:01 head[2], body[1] op[0x33]" }, { "timestamp": "2014-11-14T11:52:01", "_type": "TempBasalDuration", "duration (min)": 0, "_description": "TempBasalDuration 2014-11-14T11:52:01 head[2], body[0] op[0x16]" }, { "timestamp": "2014-11-14T11:04:04", "_type": "TempBasal", "rate": 0.0, "_description": "TempBasal 2014-11-14T11:04:04 head[2], body[1] op[0x33]" }, { "timestamp": "2014-11-14T11:04:04", "_type": "TempBasalDuration", "duration (min)": 0, "_description": "TempBasalDuration 2014-11-14T11:04:04 head[2], body[0] op[0x16]" } ]

kenstack avatar Nov 14 '14 19:11 kenstack

I have not had a repeat of the above issue re timestamps after numerous queries. I will chalk it up either my error or something very unusual.

kenstack avatar Nov 16 '14 04:11 kenstack