-
Notifications
You must be signed in to change notification settings - Fork 46
Command 1D Status response
The $1D status response is sent from the Pod to provide information on its internal state, including insulin delivery, unacknowledged alerts, Pod active time, reservoir level, etc. as the normal response to non-specialized commands. This page explains how the different values are packed into the $1D status response.
The $1D status response has the following form:
00 01 02030405 06070809
1d SS 0PPPSNNN AATTTTRR
-
1d
byte $1d: The message type -
SS
byte: bitsabcdeeee
- 4-bit
abcd
nibble is a bit mask for active insulin delivery-
a
8: Extended bolus active, exclusive of 4 bit -
b
4: Immediate bolus active, exclusive of 8 bit -
c
2: Temp basal active, exclusive of 1 bit -
d
1: Basal active, exclusive of 2 bit
-
- 4-bit
eeee
nibble is the Pod Progress State value (0
thru toF
)
- 4-bit
-
0PPPSNNN
dword =0000 pppp pppp pppp psss snnn nnnn nnnn
-
0000
4 zero bits -
ppppppppppppp
13 bits, total # of pulses delivered during life of Pod -
ssss
4 bits, message sequence # of last processed programming command (3, 8, $11, $19, $1A, $1C, $1E & $1F) -
nnn nnnn nnnn
11 bits, total # of (immediate and extended) bolus pulses not (yet) delivered from the last requested bolus operation
-
-
AATTTTRR
dword =faaa aaaa attt tttt tttt ttrr rrrr rrrr
-
f
1 bit, 0 or 1 if the Pod has faulted with occlusion fault code $14 -
aaaaaaaa
8 bits, bit mask of the active, unacknowledged alerts (1 << alert #) from the Command 19 Configure Alerts; this bit mask is the same as theTT
byte in the 02 Error Response Type 2 -
ttttttttttttt
13 bits, Pod active time in minutes -
rrrrrrrrrr
10 bits, Reservoir pulses remaining (if <= 50U) or $3ff (if > 50U left)
-
Unlike other messages, the second byte for a $1D status response is not a message length. It is speculated that this is because it was deemed important enough to save a byte on this often used and densely packed response.
The $1D status response is the normal (i.e., non-error) response to every non-specialized (i.e., non-startup & non-zero get status) command including 0x0E, 0x11, 0x19, 0x1A, 0x1C, 0x1E & 0x1F.
PDM: press Home
then Status
:
2017-09-29T17:03:54.111984 ID1:1f0b3557 PTYPE:PDM SEQ:27 ID2:1f0b3557 B9:34 BLEN:3 BODY:0e0100808f CRC:da
2017-09-29T17:03:54.396382 ID1:1f0b3557 PTYPE:PDM SEQ:27 ID2:1f0b3557 B9:34 BLEN:3 BODY:0e0100808f CRC:da
2017-09-29T17:03:54.463921 ID1:1f0b3557 PTYPE:POD SEQ:28 ID2:1f0b3557 B9:38 BLEN:10 BODY:1d180258f80000146fff81f8 CRC:ce
2017-09-29T17:03:54.501481 ID1:1f0b3557 PTYPE:ACK SEQ:29 ID2:00000000 CRC:60
1d SS 0PPPSNNN AATTTTRR
1d 18 0258f800 00146fff
$18: $10 => Basal active, $08 = Running
0PPPSNNN = 0258f800 => 0000|0010 0101 1000 1|111 1|000 0000 0000
0000 pppp pppp pppp p sss s nnn nnnn nnnn
ppppppppppppp = $4B1 (13 bits) = 1201 pulses at 0.05U/pulse = 60U total insulin delivered
ssss = $F (4 bits), sequence #
nnnnnnnnnnn = 0 (11 bits), no units of bolus insulin not delivered from last bolus
AATTTTRR = 00146fff => 0|000 0000 0|001 0100 0110 11|11 1111 1111
f aaa aaaa a ttt tttt tttt tt rr rrrr rrrr
f = 0, not in fault state $14
aaaaaaaa = 0 (8 bits), no unacknowledged alerts
ttttttttttttt = $51B (13 bits) = 1307 minutes, Pod active 21 hours, 47 minutes
rrrrrrrrrr = $3FF (10 bits) = 1023 (the value when > 50U insulin left)
The following examples are grouped by the Pod Progress State:
1d 03 00001000 000003ff
Pod progress = 3
Sequence # = 2
Pod alive time = 0 minutes
Insulin remaining = $3ff (> 50U)
1d 03 00002000 000003ff
Pod progress = 3
Sequence # = 4
Pod alive time = 0 minutes
Insulin remaining = $3ff (> 50U)
1d 44 00003034 000003ff
Immediate bolus activate
Pod progress = 4
Sequence # = 6
Pod alive time = 0 minutes
Insulin remaining = $3ff (> 50U)
1d 05 00174000 000007ff
Pod progress = 5
Insulin = $2E pulses (46 x 0.05U = 2.30U)
Sequence # = 8
Pod alive time = 1 minute
Insulin remaining = $3ff (> 50U)
1d 16 00175000 000007ff
Basal active
Pod progress = 6
Insulin = $2E pulses (46 x 0.05U = 2.30U)
Sequence # = $A
Pod alive time = 1 minute
Insulin remaining = $3ff (> 50U)
1d 16 00176000 00000bff
Basal active
Pod progress = 6
Insulin = $2E pulses (46 x 0.05U = 2.30U)
Sequence # = $C
Pod alive time = 2 minutes
Insulin remaining = $3ff (> 50U)
1d 57 0017700a 00000bff
Basal activate
Immediate bolus active
Pod progress = 7
Insulin = $2E pulses (46 x 0.05U = 2.30U)
Sequence # = $E
Pod alive time = 2 minutes
Insulin remaining = $3ff (> 50U)
1d 18 001c7000 00000bff
Basal active
Pod progress = 8 (Running)
Insulin = $38 pulses (56 x 0.05U = 2.80U)
Sequence # = $E
Pod alive time = 2 minutes
Insulin remaining = $3ff (> 50U)
1d 18 001c7000 000017ff
Basal active
Pod progress = 8 (Running)
Insulin = $38 pulses (56 x 0.05U = 2.80U)
Sequence # = $E
Pod alive time = 5 minutes
Insulin remaining = $3ff (> 50U)
Many $1D status response examples can be found in Status Response 1D.