Abacus Serial Protocol
Abacus Serial Protocol
Abacus Serial Protocol
Arcus
Hematology Analyzer
General Description
The Abacus/Arcus software is able to make serial connection link to a receiver device (e.g.
computer) which is connected to the serial port. If the Baud Rate setting in the Service Menu
is set to a valid value (other than Not Connected), the instrument will try to initiate a
communication sequence.
The serial communication is always initiated by Abacus/Arcus, and the receiver must
respond to this.
The hardware protocol: 8 data bit, 1 stop bit, no parity. If the other side is not responding in
1 second, the instrument will repeat the transmission twice, but if still no response, the other
side will be supposed to be not ready to receive data, and thus Abacus/Arcus will not try to
communicate any more.
From this state it can wake up by receiving an <ENQ> (ASCII code 5) character from the
other side, and the instrument will immediately respond an <ACK> (ASCII code 6). From this
point the instrument will send data if it is ready for transmission.
The communication is based on packages. There are 5 package types:
• INIT package: Device identification, software version, current date and time.
• DATA package: Sample and patient information, measured parameters, and markers.
• RBC package: Sample information, RBC histogram.
• WBC package: Sample information, WBC histogram.
• PLT package: Sample information, PLT histogram.
The communication sequence is always started with an INIT package. If the link is
successful, the instrument will send DATA package, and the receiver can request RBC, WBC
and PLT packages at acknowledge.
Special characters used in the communication:
Character ASCII code
<SOH> 1
<STX> 2
<ETX> 3
<EOT> 4
<ENQ> 5
<ACK> 6
<HT> 9
<LF> 10
<NAK> 21
<SPACE> 32
Abacus/Arcus Serial Communication Protocol V1.7 3
INIT package
Abacus/Arcus sends the general identifiers by this package during initiation of a communication:
DEVICE<HT>VERSION<HT>DATE<HT>TIME
DEVICE: device identifier
VERSION: version of the software, e.g. „1.7”
DATE: date in YYYYMMDD format
TIME: time in HHMMSS format
Abacus/Arcus Serial Communication Protocol V1.7 4
DATA package
This package contains sample and patient data, the measured parameters and the markers
of histograms. One data element consists of two items: name and value, which are
separated by a <HT> character, and closed by <LF>.
Important! SNO, DATE, TIME, SID and PID fields will always be present in this order,
but other fields may be omitted.
SNO<HT>152<LF> internal identifier
DATE<HT>19980715<LF> date of measurement (YYYYMMDD)
TIME<HT>114500<LF> time of measurement (HHMMSS)
SID<HT>1AXX435<LF> sample identifier (alphanumeric)
PID<HT>B72D44<LF> patient identifier (alphanumeric)
NAME<HT>JOE SMITH<LF> patient name (alphanumeric)
BIRTH<HT>19650208<LF> birthdate of patient (YYYYMMDD)
SEX<HT>0<LF> patient sex (0-male, 1-female)
DOC<HT>Dr John Gold<LF> doctor's name
OPID<HT>1172<LF> operator identifier (alphanumeric)
MODE<HT>0<LF> patient type
WRN<HT>0<LF> warning bits1 (32-bit hexadecimal)
PM1<HT>12<LF> PLT lower marker2
PM2<HT>204<LF> PLT upper marker2
RM1<HT>51<LF> RBC lower marker2
WM1<HT>23<LF> WBC upper marker2
WM2<HT>57<LF> WBC LYM-MID marker2
WM3<HT>92<LF> WBC MID-GRA marker2
PARN<HT>22<LF> number of parameters to send
P01<HT> 6.6<HT>0<LF> first parameter ID3, value and flag4
P02<HT>4.29<HT>0<LF> second parameter ID, value and flag
...
P22<HT> 8.2<HT>0<LF> last parameter ID, value and flag
Remarks:
1
Position and meaning of the warning flags:
Bit Mask Letter Meaning
0 0x00001 c RBC/PLT clogging.
1 0x00002 s RBC/PLT time error.
2 0x00004 d RBC/PLT data package errors.
3 0x00008 m RBC/PLT coincidence is too high. Linearity error.
4 0x00010 k RBC peek warning.
5 0x00020 l RBC/PLT limit warning.
6 0x00040 b RBC blank is high, or no RBC blank.
7 0x00080 p PLT blank is high, or no PLT blank.
8 0x00100 C WBC clogging.
9 0x00200 S WBC time error.
10 0x00400 D WBC data package errors.
11 0x00800 M WBC coincidence is too high. Linearity error.
Abacus/Arcus Serial Communication Protocol V1.7 5
Example
Let us suppose that the receiver was not ready to receive when Abacus/Arcus was switched on, therefore the
instrument is not starting a communication.
Receiver sends that it is ready to receive now, Abacus/Arcus sends acknowledge.
<ENQ>
<ACK>
Abacus/Arcus sends INIT next time to initiate link (there is data to send):
V1.7 software:
<SOH>AI<STX>DiaTron Abacus<HT>1.7g<HT>20010405<HT>163902<ETX>88<EOT>
V2.x software:
<SOH>AI<STX>Abacus<HT>2.15a<HT>20010405<HT>160734<ETX>E4<EOT>
Receiver sends acknowledge:
<ACK><SPACE>A