CC9554-4 V2Y SPEC SW Serial Export Protocol
CC9554-4 V2Y SPEC SW Serial Export Protocol
Agilia SP up to 4.1
Agilia SP MC up to 4.1
Agilia VP up to 4.1
Agilia VP MC up to 4.1
2 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
Date Rev. Modifications
Feb, 20th 2015 0 First issue
Subject to modification.
Dedicated to:
- Pump Software version v01.0
- Link+ BW_rel_D11 software version
Mar, 30th 2016 1 Change cover images to display Agilia V2 product
Nov, 6th 2018 2 Fix Agilia SP device ID
Fix SubID 02 description
Fix SubID 07 description
Fix MinDuration and MaxDuration parameters descriptions
Add PCA specific Values and Advanced Data
November, 2019 3 Fix SubID 0x08 Syringe Description (SP Only)
Fix SubID 0x09 Secondary Description
Add SW versions of the pumps
Refine MinDuration and MaxDuration parameters descriptions
Fix Chapter 4.5: Device information
April - 2021 4 Fixed following descriptions:
- 4.4.3.2.7 SubId 0x08 Syringe
- 4.6.2.1 Flowrate
Add V4 pumps support:
- 4.4.3.1 SummaryStatus : add bit 12 description
- 4.4.3.2.2 SubId infusion has been updated
- 4.4.3.2.5: SubId alarm has been updated
- 4.4.3.2.8 SubId Secondary has been updated
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 3
Table of contents
1. INTRODUCTION .................................................................................................................................................. 5
2. PHYSICAL LINK .................................................................................................................................................. 5
2.1 SERIAL......................................................................................................................................................... 5
2.2 TCP ............................................................................................................................................................ 5
3. DATA LINK .......................................................................................................................................................... 6
3.1 FRAME FORMAT ............................................................................................................................................ 6
3.2 ENCODING .................................................................................................................................................... 7
3.2.1 UNITS ENCODING .................................................................................................................................................... 7
3.2.2 DATES ................................................................................................................................................................... 8
3.3 CRC8 .......................................................................................................................................................... 9
3.4 CRC16 ........................................................................................................................................................ 10
3.5 EXAMPLE OF COMPLETE FRAME .................................................................................................................... 12
3.6 FRAME EXCHANGE ....................................................................................................................................... 13
3.6.1 DEFINITION ............................................................................................................................................................. 13
3.6.2 COMMUNICATION PARAMETERS ............................................................................................................................... 15
3.6.3 RECOMMENDED COMMUNICATION PARAMETERS ....................................................................................................... 18
3.6.4 RECOMMENDATIONS WHEN USING PUMPS PLUGGED ON A LINK+................................................................................. 18
4. APPLICATION LAYER – MESSAGES EXCHANGED ....................................................................................... 19
4.1 SESSION LAYER ........................................................................................................................................... 19
4.1.1 START OF COMMUNICATION ..................................................................................................................................... 19
4.1.2 END OF COMMUNICATION ......................................................................................................................................... 19
4.1.3 ERRORS MANAGEMENT............................................................................................................................................ 19
4.2 COMMANDS AND MESSAGES DESCRIPTION ..................................................................................................... 20
4.3 PROTOCOL ................................................................................................................................................... 21
4.4 DEVICE STATUS ............................................................................................................................................ 23
4.4.1 DEVICE STATUS COMMON ........................................................................................................................................ 23
4.4.2 DEVICE STATUS LINK+ ............................................................................................................................................. 25
4.4.3 DEVICE STATUS PUMP ............................................................................................................................................. 26
4.5 DEVICE INFORMATION ................................................................................................................................... 36
4.6 ADDITIONAL INFUSION INFORMATION ............................................................................................................. 37
4.6.1 ADVANCED DATA INFUSION READING ........................................................................................................................ 37
4.6.2 LIST OF DATAID ...................................................................................................................................................... 38
4.7 IP ADDRESS ................................................................................................................................................. 41
4.8 ERROR CODES ............................................................................................................................................. 42
4.9 TYPES OF VARIABLES ................................................................................................................................... 43
5. EXAMPLE ............................................................................................................................................................ 44
6. LOCAL CONTACTS FOR SERVICING ............................................................................................................... 48
4 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
1. Introduction
This guide is intended for the non-Fresenius Kabi personnel who want to communicate with the Agilia range devices. It
describes the communication system used between a device and a host device (computer, …) and gives a list of all the
available commands and information.
In case of clustered architecture, the host can communicate with each of the devices via the Link+ accessory.
The Link+ is fully transparent in the communication.
The reliability of the communication system is based on the definition of 4 distinct communication layers:
▪ A Physical Link Layer to describe the type of signals and their parameters.
▪ A Data Link Layer to specify the character frame construction mechanisms.
▪ A Session Layer through which communication is established.
▪ An Application Layer which describes the syntax of the message exchanged between the two systems (host/device).
This layer is the only visible one and it must be treated separately from the other ones. The application layer informs
the errors detected by the other layers.
The following functions are available:
▪ Setting (Silence alarm…)
▪ Information request (Infusion status…)
2. Physical Link
The communication protocol can be used with the appropriate cable accessories only.
Please refer to the IFU of the devices for the required accessory references.
2.1 Serial
The serial communication uses the standard following configuration (cannot be modified), when using a Link+ or directly
to the pump:
• Baud rate : 115200
• Data bits : 8
• Parity bit : no
• Stop bit: yes (1 stop bit)
• RTS (Request To Send) : enabled
• DTR (Data Terminal Ready) : enabled
2.2 TCP
The TCP communication uses the standard following configuration, when using a Link+:
• IP of the Link : configured in Link+’ Web Interface ( default 192.168.0.1 )
• Protocol : TCP
• Port : configured in Link+ Web Interface ( default 52000 )
See Link+ Technical Manual for further information.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 5
3. Data Link
6 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
3.2 Encoding
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 7
3.2.1.2 Extended Format
+----+----+----+----+----+----+---+---+---+---+---+-------------------+
| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | unit |
+----+----+----+----+----+----+---+---+---+---+---+-------------------+
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+----+----+----+----+----+----+---+---+---+---+---+-------------------+
3.2.2 Dates
Dates are encoded within 4 bytes (32 bits). The value corresponds to the number of seconds passed since January the
1st of September 1970.
8 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
3.3 CRC8
The CRC8 is calculated for the header of every packet. The bytes computed are TYPE, NO, ACK and SZ fields, so the 4
bytes next to the start byte (ESC).
The algorithm use an array of 256 constants values and is described below :
CRC = 0
FOR EACH byte_to_compute
CRC = ConstArray[ byte_to_compute XOR CRC ]
Implementation in C :
static const BYTE k_abyCrcArray[256] = {
0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83,
0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,
0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e,
0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc,
0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0,
0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62,
0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d,
0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff,
0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5,
0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07,
0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58,
0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a,
0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6,
0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24,
0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b,
0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9,
0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f,
0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd,
0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92,
0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50,
0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c,
0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee,
0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1,
0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73,
0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49,
0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b,
0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4,
0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16,
0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a,
0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8,
0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7,
0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35,
};
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 9
int i;
return byCRC;
}
3.4 CRC16
The CRC16 is calculated for the data part of a packet if there is one. The bytes computed are ID and all data bytes, so it
is the number of bytes indicated by the SZ field.
The public domain CRC algorithm used come from Ross Williams ([email protected]) and is dated 3 June
1993. This is the implementation (.c) file for the reference implementation of the Rocksoft^tm Model CRC Algorithm. For
more information on the Rocksoft^tm Model CRC Algorithm, see the document titled “A Painless Guide to CRC Error
Detection Algorithms” by Ross Williams. This document is likely to be in “ftp.adelaide.edu.au/pub/rocksoft”.
The most recent home (2007) for Ross Williams documentation is : http://www.ross.net/crc/
▪ Implementation in C:
#define CRC_UPDATEBYTE16( i_byVal, i_wCrc ) \
(kg_crc_awTable16[((i_wCrc)^(i_byVal))&0xff]^((i_wCrc)>>8))
typedef unsigned long DWORD;
WORD const kg_crc_awTable16 [256] =
{
0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
10 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040
} ;
/*---------------------------------------------------------------------*/
/* Crc 16 Calculation */
/* - <i_pbyBuf> buffer address */
/* - <i_dwSize> buffer size (bytes) */
/* Out : */
/* - Crc16 */
/* Calculation Crc : x16 + x15 + x2 + 1 (0x8005) */
/*---------------------------------------------------------------------*/
aWORD crc_C_Calc16( BYTE C* i_pbyBuf, DWORD i_dwSize )
{
return crc_C_Update16( i_pbyBuf, i_dwSize, 0 ) ;
}
/*--------------------------------------------------------------------*/
/*--------------------------------------------------------------------*/
aWORD crc_C_Update16( BYTE C* i_pbyBuf, DWORD i_dwSize, aWORD i_wCrc )
{
aBYTE byVal ;
while ( i_dwSize != 0 )
{
byVal = *i_pbyBuf++ ;
i_wCrc = CRC_UPDATEBYTE16( byVal, i_wCrc ) ;
--i_dwSize ;
}
return i_wCrc ;
}
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 11
3.5 Example of complete frame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
ESC @ 00 00 0B C0 70 01 08 08 00 13 88 4E 20 FF FF 8C 68
12 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
3.6 Frame Exchange
3.6.1 Definition
Before any message exchange, it is necessary to open communication session with the device. Similarly, at the end of
the dialogue, the communication session must be properly closed.
However, some frames can be spontaneously sent by the device to the host out of a communication session.
The Agilia devices periodically sends a Device status frame to the host when the communication session is closed.
The exchange of frames follows an acknowledgement protocol based on a “window” mechanism that allows to transmit
several frames before the first acknowledge is received. The number of frames of a “window” to transmit must be
configured at the opening of the communication session.
With this system, the frames can be acknowledged one by one (one acknowledgement frame sent for one frame
received) or all together (one acknowledgement frame sent for all the frames received).
If one frame of a “window” has not been acknowledged, all the frames that follows this frame in the “window” are repeated
automatically.
According to the type of frame sent by the host, the device can send a frame as a response but also either a list of frames
or no frame at all.
The device and the host have their own frame numbering.
Example: window 4/4
Host sends frames 14, 15, 16, 17; Device answer with frames 7, 8, 9, 10.
Example of the “window” mechanism with a “window” which contains 4 frames:
Frame1
Frame RX PROCESSING TX
1
Frame2
Frame3
Frame4 Reply1
Frame1
Frame Frame1 → Reply1 Ack1
1 Ack2
Frame2 Frame2 → No Reply
Ack3
Reply4
Ack4
If the frame is empty (size = 0), the frame number is ignored and only the acknowledge number is taken into account.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 13
If a non empty frame (size > 0) with a frame number null is received, the list of received messages is flushed.
Frame1
Frame RX TREATMENT TX
1
Frame2
Frame3 Frame2
lost
Frame4
Reply1
Frame1
Frame Frame1 → Reply1
Ack1
1
Frame3
ignored
Frame4
ignored
Reply1
Ack1
Frame2
Frame3
Ack2
Frame4 Frame2 Frame2 → No Reply
Ack2
Frame4 Frame4 → Reply4
Reply4
Ack4
Ack3
Reply4
Ack4
14 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
3.6.2 Communication Parameters
In order to maintain the connection between the host and the device, some parameters can be configured at the opening
of the session. These parameters are used to configure disconnection of the communication and the repetition of the
frames transmission.
Note : Be very careful when configuring those parameters if you don’t want to have any
trouble in the communication between the host and the device.
In the following paragraphs are described those parameters, and their recommended values in different configurations.
3.6.2.1 PacketMinRate_ms
If there is no communication between the host and the device during the time defined by PacketMinRate_ms, the host
and the device send an empty frame to each other to maintain the connection.
3.6.2.2
HOST DEVICE
ESC @ 03 …
ESC @ 03 …
ESC @ 04 03 …
ESC @ 04 03 …
.....
PacketMinRate_ms
connection. The last acknowledged frame number is inserted.
ESC @ 00 03 …
ESC @ 00 …
Time Time
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 15
PacketRepeatTimeout_ms
Each frame that is emitted must be acknowledged. If the device which has emitted a frame has not received an
acknowledgement before the end of the duration defined by PacketRepeatTimeout_ms, it emits the frame an other time.
HOST DEVICE
ESC @ 01 00 …
ESC @ 01 00 …
PacketRepeatTimeout_
ESC @ 01 01 …
ms
ESC @ 01 01 …
Reception of the acknowledgement of the frame
#01
Time
HOST DEVICE
ESC @ 02 01 …
PacketRepeatTimeout_ms
ESC @ 02 01 …
t
ESC @ 02 01 …
ESC @ 02 01 …
Reception of the acknowledgement of the frame
#01
ESC @ 02 01 …
Re-emission of the frame
Time
t > PacketRepeatTimeout_ms re-emission of the frame
16 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
3.6.2.3 DisconnectTimeout_ms
If no data are received by the host from the device during the time defined by DisconnectTimeout_ms, the session is
automatically closed.
HOST DEVICE
ESC @ 01 00 …
ESC @ 01 00 …
PacketRepeatTimeout_ms
ESC @ 02 01 …
DisconnectTimeout_ms
ESC @ 02 01 …
PacketRepeatTimeout_ms
Bad CRC the frame is not taken into
account (frame not acknowledged)
ESC @ 01 00 …
Re-emission of the frame #01
ESC @ 01 00 …
DISCONNECTION
ESC @ 02 01 …
(CLOSING OF THE SESSION)
Re-emission of the frame #02
ESC @ 02 01 …
Time
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 17
3.6.3 Recommended Communication Parameters
The following values are recommended to have a robust communication:
Parameter Value
Host “window” 8
Device “window” 8
PacketMinRate_ms 20000ms
PacketRepeatTimeout_ms 3000ms
DisconnectTimeout_ms 60000ms
The PacketRepeatTimeout_ms ensures that a full “window” (almost 8*270 bytes) can be emitted even if the transmission
time is long.
The DisconnectTimeout_ms ensures that a packet can be re-emitted several times.
The PacketMinRate_ms parameter is above the PacketRepeatTimeout_ms and below the DisconnectTimeout_ms.
Examples:
- If 1 pump is to be monitored : 10 requests on pump 1
- If 2 pumps are to be monitored : 6 requests on pump 1 and 4 requests on pump 2
18 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4. Application Layer – Messages Exchanged
The messages exchanged between the host and the device must respect the mechanism previously described to ensure
a perfect comprehension of each other.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 19
4.2 Commands and messages description
The commands are divided in 2 groups: those which are emitted by the device (Device➔Host) and those which are
emitted by the host (Host➔Device).
These commands cannot be used in all the functional modes of the device. Here are the different functional modes in
which the device can work:
20 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.3 Protocol
As described before, the session opening allows to specify the size of the communication “windows” and the value of the
parameters used to configure the connection (PacketMinRate_ms, PacketRepeatTimeout_ms,
DisconnectTimeout_ms…).
The host send a frame to ask the device to open a session (frame ID: 0x70). Then, the device reply with a frame (frame
ID: 0xF0) with the parameters of the connection established. These parameters are the real parameters. They can differ
from those sent by the host.
If the session cannot be opened, the device reply with a NACK frame (frame ID: 0xFF).
A frame sent to open a session has its number set to 0. All the frames that have not been sent yet are lost. In a same
way, all the frames that are waiting for a treatment by the device (even those received after the request for opening the
session) are lost.
A frame sent to close a session can have its number set to 0. In this case, all the frame that are waiting for a treatment
are lost. On the other hand, if this number is different from 0, the frame will be taken into account only when all the
previous frames will be treated. In the both cases, the reply is sent with a frame number set to 0 and all the frames that
have not already been sent are lost.
FRAME ID: 0x70 – Request for opening/closing a communication session (HOST ➔ DEVICE)
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 21
FRAME ID: 0xF0 – Opening/closing a communication session (DEVICE ➔ HOST)
With the COMM2004 protocol, the device must acknowledge all the frames sent by the host but the acknowledgement
does not imply that the command is processed. The NOP frame (flush) can be used to solve this problem. When the host
sends a frame to the device, the device replies with the same frame. So, if the host sends a frame that contains a request
and just after it sends a NOP frame, it can be sure that the request has been processed by the device at the moment
where it receives the same NOP frame from the device.
22 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.4 Device status
FRAME ID: 0x00 – Request for Device status information (HOST ➔ DEVICE)
The parameters byMinDuration and byMaxDuration are used to specify a cyclical sending of frames (see below).
Note : If the frame is sent to the device without parameter, information are immediately
received through a Device status frame (Frame ID: 0x80).
byMinDuration and byMaxDuration parameters are timing parameters defined in seconds or milliseconds depending on
the range of the value.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 23
Different combinations are possible with these 2 parameters:
Transmission
50-254 < 50-254 - if an event occurs and if MinDuration is elapsed
In any case, transmission if MaxDuration elapsed
Transmission
50-254 255 - if an event occurs
- and if MinDuration is elapsed
255 255 Immediate transmission
24 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.4.2 Device status Link+
FRAME ID: 0x80 – Device status information (DEVICE ➔ HOST) for Agilia Link+ (all version ID)
TYPE Name Description
BYTE Device Version ID:
0x02 : Link+ (old version)
0x12 : Link+ (new version with Alarm Management)
STRING(4) Version Version of the boot
STRING(4) Version Version of the application
STRING(16) SerialNo Serial number
BYTE Mode 0xFF for boot
0x02 for application
BYTE NbSlots Number of slots
WORD PresentDevices Bitfield defining the device presence, i.e. bit0 = Slot1, bit7 = Slot8
WORD Reserved Reserved = 0x00
WORD AlarmActive Bitwise definition of active alarms
i.e.
An alarm on Slot1 device sets bit0.
An alarm on Slot2 device sets bit1.
Etc…
BYTE Reserved Reserved = 0x00
BYTE Reserved Reserved = 0x00
BYTE Reserved Reserved = 0x00
Note on Alarmactive:
If an alarm on the device is set and the device is “beeping”, then the rack will set the corresponding bit to 1.
If an alarm on the device is set and the device is not “beeping” (because of SILAL key pressed), then the rack will set the
corresponding bit to 0.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 25
4.4.3 Device status Pump
FRAME ID: 0x80 – Device status information (DEVICE ➔ HOST) for Agilia SP / Agilia VP
There is :
- Always a first block of data giving general information about the device.
- depending on Device value (see 4.4.3.1), subDevice
Optional subID(’s) with specific information,
value (see 4.4.3.2.4) and Device state.
26 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
Value hex StepStatus Description
Applicable to both Agilia SP and Agilia VP, except when indicated
00 Other (configuration menu User, Ward, Maintenance)
01 Agilia SP: Syringe selection
Agilia VP: Initial alarm display
02 Agilia SP: Wait for prime (mandatory or recommended prime)
03 Flow rate selection (while infusion stopped)
Agilia SP: PCA – PCA programming (while infusion stopped)
83 Flow rate selection (while infusion in progress)
Agilia SP: PCA – PCA programming (while infusion in progress)
04 Drug selection
05 Agilia SP: Volume/time programming defined in the drug
06 loading dose selection
07 waiting for loading dose launching
08 programmed bolus selection, infusion not in progress
88 programmed bolus selection, infusion in progress
09 waiting for programmed bolus start, infusion not in progress
89 waiting for programmed bolus launching, infusion in progress
0B Agilia VP: Secondary Drug Selection
0D Waiting before lnfusion start
0F Menu (infusion stopped)
8F Menu (infusion in progress)
10 Infusion
11 Simple bolus during stop
91 Simple bolus during infusion
13 Prime
14 Agilia VP: Air Purge
15 Agilia VP: Occlusivity Control
20 Stop
21 Occlusion
22 KVO1 infusion
23 Error
24 Pause
30 Booting steps (from “displaying info” to “syringe selection’’/” Initial alarm display”)
32 Warning screen at start
40 Agilia SP: PCA - Loading Dose Stop
41 Agilia SP: PCA - Loading Dose Selection
C0 Agilia SP: PCA - Loading Dose Infusion
1 KVO (Keep Vein Opened): a minimal infusion flow rate can be maintained to avoid a vein occlusion caused by the blood coagulation.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 27
42 Agilia SP: PCA - Waiting for Patient Bolus
FF Unknown
28 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.4.3.2 SubIds
Nota: This packet is present only of at least one of the parameters is different from zero.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 29
4.4.3.2.2 SubId 0x02 Infusion
30 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
Infusion Agilia SP Agilia VP
Mode
01 Basic Infusion Volume/time
02 Volume/Time Volume/rate
03 Simple Bolus Time/rate
04 Prime Volume/time/rate
05 Manual Bolus Rate
06 n/a Drops/minute
07 Loading Dose Simple bolus
08 Programmed Bolus Secondary
09 TCI Loading dose
10 PCA - Loading Dose Programmed bolus
11 PCA - Patient Bolus Ramp
12 PCA - Doctor Bolus Sequence
13 PCA - Basic Infusion (XmL/h with or w/o Patient Bolus enabled) Air prime
14 PCA - Patient Bolus only (no Basic Infusion: 0mL/h) Prime Set
15 PCA - Sequence Infusion (with or w/o Patient Bolus enabled) n/a
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 31
4.4.3.2.3 SubId 0x04 TCI
32 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.4.3.2.5 SubId 0x06 Alarm
DWORD Indic Bit 0: end of Volume Limit KVO Bit 0: occlusivity control (OCS test) not
Bit 1: end of Volume/Time KVO compliant
Bit 2: empty syringe mode Bit 1: end of infusion KVO
bit 2: drop sensor present
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 33
DWORD Indic Bit 3: Mains unplugged
Bit 4: Pressure Rise
Bit 5: Pressure Down
Bit 6: verrouillage clavier
Bit 7: keyboard locked, available in idle mode
Bit 8: flow rate low
Bit 9: flow rate high
Bit 10: loading dose low
Bit 11: loading dose high
Bit 12: Infusion start delayed after end of PAUSE
Bit 13: Weak Battery
Bit 14: TCI - concentration low
Bit 15: TCI - concentration high
Bit 16: non validation while waiting
Bit 17: non validation when no action
Bit 18: non validation when choosing value
Bit 19: Device Temperature High, available in idle mode
Bit 20: programmed bolus dose low
Bit 21: programmed bolus dose high
Bit 22: keyboard locked screen
Bit 23: no Alarm report on Link+
Bit 24: mains fluctuation, available in idle mode
DWORD Indic Bit 25: PCA – End of Doctor Bolus with Max Bit 24: mains supply oscillation
Dose Infused Bit 25: clinical information
Bit 26: clinical information Bit 26-31 : always à 0
Bit 27: end of clinician bolus with maximum
cumulated dose alarm in progress (PCA
only)
Bit 28-31 : always à 0
BYTE Error If value !=0, then Technical Error
WORD ErrorStatus If Technical Error, then Complementary Information for Technical Error
Nota : This packet is present in Idle mode only if : an Error is active, or if an Indication is active and is also available in
Idle mode.
34 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.4.3.2.7 SubId 0x08 Syringe
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 35
4.5 Device information
The following frame is used to retrieve the device version.
Example:
STRING(32)
Version “3.0 / BW_rel_D16”
36 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.6 Additional infusion information
The values in these frames shall not be used when the pump is in idle mode.
FRAME ID: 0x5F – Request for advanced infusion data (HOST ➔ DEVICE)
Note : If this frame is sent without parameter, no reply is sent by the device and all
spontaneous frames ID 0x5F are no more sent.
In response to this frame the following frame is sent by the device to the host:
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 37
4.6.2 List of DataId
4.6.2.1 Flowrate
A manual bolus is a forbidden operation which consists in pushing the plunger manually.
38 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.6.2.5 Loading Dose and PCA Loading Dose
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 39
4.6.2.8 PCA – Sequence Flowrate
40 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.7 IP Address
The following frame is used to retrieve the Link+ IP address.
The following frame is only available for Link+, Version ID 0x12, Software Version >= BW_rel_D8
Frame example:
64 01 01
If the Link+ is configured in DHCP mode, the returned value is unknown, unless the Link+ has access to a DHCP
Server.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 41
4.8 Error Codes
Here is the list of all the possible error codes:
Error
Error Type Description
Code
01h ERRCLOSE Communication session not opened
02h ERROPEN Communication session already opened
03h ERRID Frame ID unknown
04h ERRIDMODE Frame ID not allowed in the current functional mode
05h ERRIDSTATE Frame ID not allowed in the current state of the device
06h ERRFUNCID Function ID unknown
07h ERRFUNCMODE Function ID not allowed in the current functional mode
08h ERRFUNCSTATE Function ID not allowed in the current state of the device
09h ERRDATAID Data ID unknown
0Bh ERRMODE Incorrect requested functional mode
0Ch ERRSIZE Incorrect packet size
0Dh ERRSUBSIZE Incorrect sub-packet size
0Eh ERRZONEID Incorrect Zone ID
0Fh ERRPARID Incorrect Parameter ID
10h ERRPARINDEX Incorrect index of an element in an array of parameters
11h ERRLIMIT Incoherent or out-of-limits packet parameter
12h - Unused
13h ERRALARM Alarm present
14h - Unused
15h ERRSPONT Spontaneous emission not possible
16h – 19h - Error codes used by Boot
1Ah - Unused
1Bh ERRPARSUBSIZE Incorrect sub-parameter size in a parameter with a variable length
1Ch ERRPARNOSUB Missing sub-parameter set in a parameter
1Dh – 25h - Unused
26h - Error code used by Boot
27h – 28h - Unused
42 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
4.9 Types of variables
Note :
STRING: the first character can be an escape code defining the string encoding. By default, a STRING is encoded in
CP1252 but other codepages are possible. The list below is not exhaustive.
VSTRING are string with variable size length. The parameter is the maximum size length. The difference is about the
memory footprint.
Example:
VSTRING(30) Name = “dupont\0”, strlen(Name) == 7.
STRING(30) Name, strlen(Name) == 30
01h: CP1251
02h: CP1252
03h: CP1253
04h: CP1254
05h: CP1255
06h: CP1256
07h: CP1257
08h: CP1259
10h: CP1250
11h: CP874
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 43
5. Example
The following example shows:
1- Connection
2- Packet MinRate Frames
3- Subscribe to events (frame ID 0x00)
4- Start a Direct Bolus
5- Stop Direct Bolus
6- Disconnection
Connection Request
08:54:23,9304150 - 1B 41 00 00 0B 4F 70 01 08 08 00 0B B8 27 10 FD E8 AD 77
Connect(mode=0x01, window=8/8, PacketRepeatTimeout=3000, PacketMinRate=10000, DisconnectTimeout=65000)
NOP Request
08:54:23,9508927 - 1B 41 01 00 05 FB 71 00 00 00 29 D5 BD
44 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
(PUMP) Current Status – 0x80
08:54:38,8383078 - 1B 61 02 02 62 18 80 43 30 32 32 20 5A 30 31 38 37 39 32 2F 32 32 38 36 30 30 36 36 00 5B E2
B6 89 02 10 08 30 19 02 01 00 00 04 4C 06 50 00 0E 00 00 00 BE 67 00 00 04 17 00 00 00 00 00 00 05 21 0E 06 00 00
00 00 00 00 00 00 00 00 00 00 00 16 08 32 49 6E 6A 65 63 74 6F 6D 61 74 20 53 70 72 2E 00 00 00 00 00 63 36
(0x43 Connect SP)(Ver 022 )(Serial Z018792/22860066)(OperMode ON)(StepSts: 0x10 - Infusion)(SumSts: 0x830)
[SubId] subSize 0x19
[SubId] Id 0x2
[SubId 0x2] InfusMod Basic infusion, LeftVol 48743, 1.1mL/h
[SubId] subSize 0x2
[SubId] Id 0x5
[SubId 0x5] bsubDevice MC WiFi (0x21)
[SubId] subSize 0xe
[SubId] Id 0x6
[SubId 0x6] Alarm 0x0
[SubId] subSize 0x16
[SubId] Id 0x8
[SubId 0x8] Alarm
[SubId] subSize 0x0
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 45
(PUMP) Start Direct Bolus 2/2
08:54:43,9879879 - 1B 61 04 02 62 C9 80 43 30 32 32 20 5A 30 31 38 37 39 32 2F 32 32 38 36 30 30 36 36 00 5B E2
B6 8E 02 91 08 30 19 02 03 00 03 0D 40 06 50 00 0D 00 00 00 BE 67 00 00 04 18 00 00 00 00 00 00 02 05 21 0E 06 00
00 00 00 00 00 00 00 00 00 00 00 00 16 08 32 49 6E 6A 65 63 74 6F 6D 61 74 20 53 70 72 2E 00 00 00 00 00 77 C5
(0x43 Connect SP)(Ver 022 )(Serial Z018792/22860066)(OperMode ON)(StepSts: 0x91 - Simple bolus since
infusion)(SumSts: 0x830)
[SubId] subSize 0x19
[SubId] Id 0x2
[SubId 0x2] InfusMod Simple Bolus, LeftVol 48743, 200mL/h
[SubId] subSize 0x2
[SubId] Id 0x5
[SubId 0x5] bsubDevice MC WiFi (0x21)
[SubId] subSize 0xe
[SubId] Id 0x6
[SubId 0x6] Alarm 0x0
[SubId] subSize 0x16
[SubId] Id 0x8
[SubId 0x8] Alarm
[SubId] subSize 0x0
46 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
(PUMP) Stop Direct Bolus 2/2
08:54:50,5357852 - 1B 61 06 02 62 86 80 43 30 32 32 20 5A 30 31 38 37 39 32 2F 32 32 38 36 30 30 36 36 00 5B E2 B6
95 02 10 08 30 19 02 01 00 00 04 4C 06 50 00 0A 00 00 00 BC E3 00 00 05 7E 00 00 00 00 00 00 02 05 21 0E 06 00 00
00 00 00 00 00 00 00 00 00 00 00 16 08 32 49 6E 6A 65 63 74 6F 6D 61 74 20 53 70 72 2E 00 00 00 00 00 3F 4E
(0x43 Connect SP)(Ver 022 )(Serial Z018792/22860066)(OperMode ON)(StepSts: 0x10 - Infusion)(SumSts: 0x830)
[SubId] subSize 0x19
[SubId] Id 0x2
[SubId 0x2] InfusMod Basic infusion, LeftVol 48355, 1.1mL/h
[SubId] subSize 0x2
[SubId] Id 0x5
[SubId 0x5] bsubDevice MC WiFi (0x21)
[SubId] subSize 0xe
[SubId] Id 0x6
[SubId 0x6] Alarm 0x0
[SubId] subSize 0x16
[SubId] Id 0x8
[SubId 0x8] Alarm
[SubId] subSize 0x0
Deconnection request
08:54:58,0867302 - 1B 41 03 06 0B 01 70 00 00 00 00 0B B8 00 00 FD E8 7F 4B
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 47
6. Local contacts for servicing
48 CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol
This document may contain inaccuracies or typographical errors.
Modifications may therefore be made and will be included in later editions.
Due to changing standards, legislation and material, the characteristics indicated by the text and the images of this
document are applicable only for the device that it accompanies.
This document may not be reproduced in whole or in part without the written consent of Fresenius Kabi.
Agilia® is a registered trademark by Fresenius Kabi in selected countries.
Fresenius Kabi AG
D-61346 Bad Homburg
Marking in conformity to the
Germany essential requirements of the
www.fresenius-kabi.com 93/42/CEE directive.
CC9554-4_V2Y_SPEC_SW_Serial_Export_Protocol 49