-
Notifications
You must be signed in to change notification settings - Fork 46
Message Structure
Messages are assembled from one or more packets. Here's an example of a series of packets that make up a temp basal being issued.
First packet from PDM to POD: 1f07b1eeb91f07b1ee30201a0ebee0a2d001007d01384000020002160e40000015051be550
is decoded as ID1:1f07b1ee PTYPE:PDM SEQ:25 ID2:1f07b1ee B9:30 BLEN:32 MTYPE:1a0e BODY:bee0a2d001007d01384000020002160e40000015051be5 CRC:50
Then the POD acks with: 1f07b1ee5a1f07b1ee30
Second packet from PDM to POD is a CON packet 1f07b1ee9b6d0015051be56d8137f3
, which is decoded as ID1:1f07b1ee PTYPE:CON SEQ:27 CON:6d0015051be56d8137 CRC:f3
The final message is 1f07b1ee30201a0ebee0a2d001007d01384000020002160e40000015051be56d0015051be56d8137
.
Let's break the above message down into parts, in order:
- Pod ID (4 bytes):
1f07b1ee
. This is assigned by the PDM, often in an incrementing fashion, with each pod getting a subsequent id. - B9 (1 byte):
30
. There is a counter in the middle four bits:00xxxx00
- BLEN (1 byte):
20
. Total length of the message body. - Body (variable, up to 201 bytes):
1a0ebee0a2d001007d01384000020002160e40000015051be56d0015051be56d
- The first two bytes (
1a0e
) seem to be a message type
- The first two bytes (
- CRC16 (2 bytes):
8137
. This is a pseudo CRC16
The length of the message type + body above is 0x20 bytes, matching the BLEN.
- PDM (0e01) (Status Request)
- POD (1d18) (Status Response)
- ACK
- PDM (0e01) (Status Request)
- POD (1d18) (Status Response)
- ACK
- PDM (1a0e) (Bolus Request)
- ACK
- CON
- POD (1d**) (Delivery Confirmation??)
- CON
- PDM (0e01) (Status Request)
- POD (1d18) (Status Response)
- ACK
- PDM (1a0e) (Basal Change Request)
- ACK
- CON
- POD (1d**) (Basal Confirmation)
- ACK