Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

PCE-525 C2 format description

1 OBJECT
This document describes the data format protocol.
The functionalities have to match the software specifications of the PCE-525 analyser.

2 APPROVAL AND HISTORY

Révision Date Auteur Raison et nature de la modification Approbation


01 2020-02-03 S. HADDAB Document creation from generic format rev 04

3 DIFFUSION / MISE A DISPOSITION

4 TERMINOLOGY AND ABBREVIATIONS


LIS : laboratory informatic system, HOST system

5 REFERENCES

6 SYSTEM OVERVIEW
The PCE-525 analyser may communicate with a LIS system. The essential part of these communications is the
results sending.

Page 1/17
PCE-525 C2 format description

1 OBJECT ............................................................................................................................................................... 1
2 APPROVAL AND HISTORY ................................................................................................................................ 1
3 DIFFUSION / MISE A DISPOSITION .................................................................................................................. 1
4 TERMINOLOGY AND ABBREVIATIONS ........................................................................................................... 1
5 REFERENCES .................................................................................................................................................... 1
6 SYSTEM OVERVIEW .......................................................................................................................................... 1
7 GENERAL SPECIFICATIONS............................................................................................................................. 3
7.1 GENERIC PRINCIPLES ............................................................................................................................ 3
7.1.1 Unit ......................................................................................................................................................... 3
7.2 FRAMES .................................................................................................................................................... 4
7.2.1 RESULT SENDING ............................................................................................................................... 4
7.2.1.1 Analysis result sending ................................................................................................................. 4
7.2.1.1.1 Haematological parameter format ........................................................................................... 7
7.2.1.2 Alarms list ...................................................................................................................................... 7
7.2.1.3 WBC interpretive message ........................................................................................................... 8
7.2.1.4 RBC interpretive message ............................................................................................................ 8
7.2.1.5 PLT interpretive report .................................................................................................................. 8
7.2.1.6 Dynamic clusters matrices ............................................................................................................ 9
7.2.1.6.1 Compression ............................................................................................................................ 9
7.2.1.6.2 Decompression ...................................................................................................................... 12
7.2.2 CALIBRATION ..................................................................................................................................... 13
7.2.2.1 Sending calibration report ........................................................................................................... 13
7.2.2.2 Result .......................................................................................................................................... 14
7.2.3 QC ........................................................................................................................................................ 15
7.2.3.1 Result .......................................................................................................................................... 15
7.2.4 Repeatability ........................................................................................................................................ 16
7.3 CONTROL SUM ....................................................................................................................................... 16
7.3.1 Algorithmic ........................................................................................................................................... 16
7.3.2 C language source example implementation ...................................................................................... 16

Page 2/17
PCE-525 C2 format description

7 GENERAL SPECIFICATIONS
It is a specific format designed by C2 to transfer data to an external system.
To ease the use of these data, the chosen format is text oriented and is compatible with CSV format.
The identifiers have to be in English.

7.1 Generic principles


The PCE-525 begins its frame with the following header:
PCE-525;W;X;;Y;[CR]

Where :
W is the Free instrument number (2 chars maximum).
X is the Free serial number (13 chars).
Y is the user login, UTF8 coded.

The decimal separator is the dot.


The fields separator is the semicolon.
The lines separator and the end of frame indicator are the carriage return.
The atomic frames are :
• Results sending request with results sending
• Sending of calibration packet with calibration results
All the frames lines have to be emitted ( if there is no information, the parameter is left empty ).
All the identifier keywords (of frame or of parameter ) are in upper-case.
The following fields ( SID,PID, ID, blood type, operator, lot numbers ) are UTF8 encoded.
The DATE format is set to DD/MM/YYYY, time is set to HH:MM:SS in 24 hour mode.

Maximum fields length for fields shared among different frames


OPERATOR 10 chars
USER 10
LOT (CALI or QC) 8
SID 16
PID 16
ID 20

7.1.1 Unit
UNIT;u[CR]

Unit code value u Unit system


1 USA = standard
4 S.I.
7 S.I. MOD
3 OTHER

Page 3/17
PCE-525 C2 format description

7.2 FRAMES
7.2.1 RESULT SENDING
The PCE-525 sends the results to the host.

PCE-525 Host

PCE-525;1;610207-000451;;BILL[CR]
RESULT[CR] result frame
Analysis result sending

7.2.1.1 Analysis result sending

PCE-525;1;610000-000000;;A;
RESULT
DATE;14/06/2017
TIME;10:03:57
MODE;NORMAL
UNIT;1
SEQ;63;1
SID;4
PID;
ID;
TEST;CD
TYPE;DIF WB
BIRTH;
Gender;0
Group;0
Doctor;
PATIENT COMMENT;
SN;610000-000000
OPERATOR;ADMIN
PREL;OT
ALTITUDE;N
CYCLE;N
WBC;8.4 ; ; ; ;2.0 ;4.0 ;12.0 ;15.0 ;
LYMP;1.1 ; ;L; ;15.0;25.0;50.0;55.0;
MONP;0.8 ; ;L; ;1.0 ;2.0 ;10.0;12.0;
NEUP;97.3; ;H; ;45.0;50.0;80.0;85.0;
EOSP;0.8 ; ; ; ;0.0 ;0.0 ;5.0 ;8.0 ;
BASP;0.0 ; ; ; ;0.0 ;0.0 ;2.0 ;5.0 ;
IMMP;0.6 ; ; ; ;0.0 ;0.0 ;100.0;100.0;
ALYP;21.2; ; ; ;0.0 ;0.0 ;100.0;100.0;

Page 4/17
PCE-525 C2 format description

LYM;0.1 ; ;L; ;0.7 ;1.0 ;5.0 ;5.5 ;


MON;0.1 ; ; ; ;0.0 ;0.1 ;1.0 ;1.1 ;
NEU;8.2 ; ;h; ;1.5 ;2.0 ;8.0 ;9.0 ;
EOS;0.1 ; ; ; ;0.0 ;0.0 ;0.4 ;0.6 ;
BAS;0.0 ; ; ; ;0.0 ;0.0 ;0.2 ;0.3 ;
IMM;0.1 ; ; ; ;0.0 ;0.0 ;150.0;150.0;
ALY;0.0 ; ; ; ;0.0 ;0.0 ;150.0;150.0;
RBC;4.50 ; ; ; ;2.50 ;4.00 ;6.20 ;7.00 ;
HGB;13.0; ; ; ;8.5 ;11.0;17.0;19.0;
HCT;36.8; ; ; ;25.0;35.0;55.0;60.0;
MCV;81.8 ; ; ; ;70.0 ;80.0 ;100.0;120.0;
MCH;28.9; ; ; ;25.0;26.0;34.0;35.0;
MCHC;35.3; ; ; ;28.0;31.0;35.5;37.0;
RDW-CV;11.2; ; ; ;7.0 ;10.0;16.0;25.0;
RDW-SD;33.6 ; ;l; ;25.9 ;37.0 ;46.0 ;71.9 ;
PLT;294 ; ; ; ;70 ;150 ;400 ;500 ;
MPV;12.7; ;H; ;6.0 ;7.0 ;11.0;12.5;
PCT;0.374; ; ; ;0.100;0.200;0.500;0.600;
PDW;15.7; ; ; ;8.0 ;10.0;18.0;25.0;
PLCR;22.0; ; ; ;8.0 ;12.0;42.0;60.9;
PLCC;65 ; ; ; ;6 ;18 ;168 ;304 ;
WBC
CURVE;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;2;2;2;2;2;2;2;2;2;2;2;3;5;9;14;20;26;35;47;60;74;90;111;136;160;182;
203;222;236;242;244;243;238;227;212;195;176;158;137;114;96;81;69;57;45;34;25;19;14;11;8;5;4;3;2;2;2;2;2;2;2;
2;2;2;2;2;2;2;2;2;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;3;2;1;1;1;1;1;1;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;
WBC THRESHOLDS;32;120;0;
RBC
CURVE;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;1;1;2;3;5;7;10;14;19;26;35;48;63;82;106;132;157;178;200;221;236;
244;243;233;218;202;183;162;140;119;99;79;62;49;39;31;24;19;16;13;11;9;7;6;5;4;4;4;4;4;4;4;4;4;4;5;6;6;6;6;6;6;
6;6;6;6;5;5;5;5;4;4;3;3;2;2;2;2;1;1;1;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;
RBC THRESHOLDS;32;62
PLT
CURVE;0;0;0;0;0;2;5;11;20;30;40;52;65;75;85;95;103;108;114;117;120;121;124;124;126;126;124;123;121;118;11
5;113;110;105;103;98;94;90;85;80;75;70;65;61;58;55;52;50;48;45;44;41;40;37;34;32;30;28;27;25;24;22;21;20;18;
17;15;14;12;11;10;8;7;7;5;5;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;4;2;2;2;2;2;2;2;2;4;4;4;4;4;4;4;4;4;4;4
;4;4;4;5;5;5;
PLT THRESHOLDS;100
ALARMS;NH ;QC-F;
INTERPRETIVE_WBC;LYM<;NEU>;
INTERPRETIVE_RBC;
INTERPRETIVE_PLT;MACROP;
COMMENT;ALY, IMM, PLCR, PCT, PLCC and PDW are for Research Use Only;
DYNAMIC_MATRIX;
Z982;46;Z3;46;46;Z3;47;47;Z3;46;Z2;46;Zc;46;Z24;46;Z3c;46;46;Z6;47;51;47;46;0;47;46;46;Z4;46;Z3;46;0;46;Zb;
46;Z1e;46;Z39;50;Z3;50;0;50;50;Z4;50;Z5;46;47;Za;46;Z8;46;Z62;50;0;50;Z6;47;46;Z5;46;Z14;46;Z11;46;Z44;50;
Z5;51;Z3;46;Z5;46;Z5;46;Z5;46;
;Z2;46;Z5e;50;Z2;50;Z4;50;50;Z3;46;Z2;46;Z2;46;0;46;Z6c;50;Z3;50;0;50;50;50;50;Z4;46;Z4;46;Z5;46;Z6c;50;0;50
;Z2;46;Z3;46;Z75;51;Z4;50;Z5;46;46;Z7;47;Zd;46;Z5a;50;Z16;46;Z6c;50;0;50;51;Z12;46;Z66;50;Z5;50;0;50;0;46;Z
3;47;Z5;46;Z4;46;Z69;50;Z8;47;
;Z2;46;Z1e;46;Z3;46;Z55;50;Z10;46;Z6e;51;Z5;46;Z3;46;Z76;50;Z7;46;Z21;46;Z53;50;0;50;Zc0;46;Z4d;46;Z6b;a;0
;a;Z4;a;Za;46;Z34;46;Z3a;a;Zb;a;Z38;46;Z3c;a;Z2;a;Z2;a;Z3;a;Z11;46;Z2e;46;Z38;a;Zc;a;Z19;1e;Zb;46;Z15;1e;Z1
2;28;Z29;a;Z2;b;0;b;Z26;1e;Zf;1e;
;0;1e;Z5;1e;Z37;a;Z5;a;Z34;1e;Z48;a;Z29;1e;Za;1e;Z2;1e;Z2;1e;Z48;a;Z23;1e;Z9;1e;Z25;28;Z14;a;Z21;1e;Z20;1e;
Z2;1e;1e;Z5;1f;1e;Z2f;a;Z18;a;Z18;1e;Z15;1e;0;1e;Z9;1e;0;1e;Z6e;1e;0;1e;Z3;1f;0;1f;0;1e;Z8;1e;Z62;1e;Za;1e;1e;
Zf;1e;1e;Z10;28;Z6;28;Z4d;1e;
;Z2;1e;Z3;1e;1e;1e;1e;1f;Z4;1e;Z2;1e;1e;1e;Z6;1e;Z8;1e;Z5b;1e;1e;Z2;1f;Z2;1e;1e;0;1f;1e;Z2;1e;1e;1f;1e;1e;Z5;1f
;Z12;28;Z2e;a;Z25;1e;Z2;1e;1f;1f;Z2;1f;1f;1f;1e;1e;0;1f;0;1e;1f;1f;1f;0;1e;Z2;1e;Z64;1e;1e;0;1e;1e;1e;1e;1e;1e;1e;
0;1f;1e;1e;1f;1f;

Page 5/17
PCE-525 C2 format description

;Z5;1e;1e;Zf;1e;Z3b;a;Z18;1e;Z3;1f;0;1f;1e;0;1f;1f;1e;1f;0;1e;1f;1f;1f;1f;1f;1f;1e;1e;1f;1e;0;1e;1e;0;1e;1e;0;1e;0;1e;
1e;Z6;1e;Z4;28;Z3c;1e;Zb;1e;0;1e;Z4;1e;Z5;1e;0;1e;0;1e;0;1e;1f;1f;1f;1e;1f;1f;1e;1e;1f;0;1f;1f;0;1f;1e;Z2;1e;1e;Zb;
1e;Z13;28;
;Z28;a;Z16;1e;Z4;1f;1f;0;1f;1f;1f;1f;1f;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1f;1e;1f;1e;1e;Z2;1f;1f;Z2;1e;Z4;1e;Ze;2
8;Z45;1e;Z2;1e;Z2;1e;1f;1f;1f;1e;1e;0;1e;1e;1f;1f;1f;1f;1f;1e;1f;1e;0;1f;1e;1e;1e;1e;1f;Z2;1e;1e;Z2;1e;Z3;1e;Z5;1e;
Z7;28;
;0;29;Z6;28;Z1b;b;Z22;1e;0;1e;Z2;1e;1f;1e;1e;0;1f;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1e;1f;1f;1f;Z2;1f;1f;1f;1e;0;1e;0;1e;
0;1e;Z2;1e;Z6;1e;Z2b;a;Z21;1e;Z5;1e;0;1e;0;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1e;1e;1e;1e;1f;1f;1
f;
;0;1e;0;1e;0;1f;Ze;28;Z1b;a;Z4;a;Z4;a;Za;a;Z19;1e;1e;1e;1e;1f;1f;Z2;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
1f;1f;1f;1f;1f;1e;1f;Z2;1e;Z2;1e;1e;Z7;1e;Z5;28;Z2;28;Z2;28;Z6;28;Z16;a;Z6;a;Z9;a;Z9;1e;Za;1e;1f;0;1f;1f;Z2;1e;1f;
1f;1f;
;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1e;1f;1e;Z2;1f;0;1e;1e;1e;1f;1e;1e;Z4;1e;Z2;1e;Z7;28;Z1b;a;Za;b
;0;a;Zd;1e;Z9;1e;Z6;1e;1f;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1f;0;1e;1e;1f;
;Z2;1f;1f;1f;Z9;28;28;Z4;28;0;28;Z15;a;Z6;a;a;a;Z1f;1f;Z3;1e;Z2;1e;0;1f;1f;1f;1e;1f;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1e;1f;Z2;1e;Z2;1e;1e;1e;1e;Z3;1e;Z33;a;Z11;1e;Z4;1e;1f;Z3;1e;0;1f;1f;1f;1f;1f;1e;1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;0;1f;1e;Z3;1e;0;1e;Z4;1e;1e;0;28;28;Ze;28;Z
12;a;0;a;Zc;b;Z17;1f;0;1e;1e;Z2;1e;1f;1f;1f;1f;1f;1f;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;
;1f;1f;1f;Z2;1e;1f;Z3;1e;1e;0;1f;1e;Z2;1e;Z6;28;Z24;a;Z1c;1e;Z2;1f;1e;1e;0;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1
f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1e;Z2;1f;Z2;1e;1e;Z3;1e;1f;1e;Z4;28;Z2;29;Z2a;a;Z2;a;a;Z16;1e;1e;Z6;1f;0;
1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;0;1e;1f;0;1e;Z3;1e;1e;Z4;1e;Z9;28;Z1c;
a;0;b;a;a;0;a;a;a;b;a;Z11;1e;1e;Z4;1e;1e;0;1f;Z3;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1e;1f;1f;0;1f;1e;0;1e;1e;Z2;1f;28;Z2;28;Z28;14;14;0;a;Z12;1e;Z4;1e;Z5;1e;1e;1e;1e;
1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1e;1f;1f;1e;0;1e;1e;Z3;1e;1f;Z11;28;
;28;Z19;14;Z3;15;Z2;14;14;Za;1e;Ze;1e;1e;1e;Z3;1e;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1e;0;1f;1f;1e;1e;Z7;1e;Z29;14;Z2;14;Z2;14;14;Z10;1e;Z8;1e;1e;0;1f;1e;1f;1f;1f;1e;1f;1f;1f;
1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;1e;Z3;1e;Z1c;28;Z18;14;0;14;Z16;1e;Z2;1
e;1e;1f;1e;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
;1f;0;1f;1f;1e;1e;Z4;1e;Z30;14;Z19;1e;Z2;1e;1e;1e;1e;0;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
1f;1f;1f;1f;1e;1f;1e;1f;1f;1f;1f;1e;0;1e;1e;1f;Z2;1e;Z7;28;Z26;14;Za;14;0;15;Z3;1e;Z13;1f;0;1e;1f;1f;1f;0;1f;1f;1f;1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;Z2;1e;0;1e;Z3;1e;Z16;28;Z15;14;Z21;1e;Z3;1e;
1e;0;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1e;1f;0;1e;1f;Z2;1e;
;Z3;1e;Z31;14;Z17;1e;Z3;1e;1e;0;1e;1e;1e;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1
f;1f;1f;1f;1f;1f;1e;0;1f;1f;Z7;1e;Z30;14;Z6;14;Z13;1e;Z3;1e;1e;1e;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;0;1f;0;1f;1e;Z4;1e;1e;Z2;1e;Z2e;14;14;0;14;Z4;14;Z6;1e;Z5;1e;Z2;1e;Z4;1e;1e;Z
2;1f;Z4;1e;1f;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;0;1e;Z5;1e;
;Z3;28;Z32;14;Zc;1e;Z6;1e;1e;1e;Z3;1e;0;1f;1f;1f;Z2;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1
f;1e;1f;1f;1e;1e;1e;1e;1e;1e;1f;0;1f;1e;Z38;14;Z12;1e;Z2;1e;1e;1f;1e;1f;1f;0;1e;0;1e;1f;1f;1f;1f;0;1f;1f;1f;1f;1f;1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1e;1f;0;1f;Z3;1e;Z4;1e;28;Z46;1f;Z7;1e;0;1f;1f;Z2;1e;0;1f;1f;1f;
1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;0;1f;1f;1f;1f;1f;1f;1f;1e;1e;Z53;1e;Z4;1f;Z2;1e;0;1e;1f;1f;1e;1f;1f;1f;1f;
;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1f;1e;1f;1f;1e;0;1f;1f;1e;1f;Z4c;1f;Z7;1e;Z3;1f;1e;Z2;1e;0;1e;1e;1f;1
e;1f;1f;1f;1f;1e;1f;1f;1f;1f;1f;1f;1e;1f;1f;1f;1f;0;1e;1e;1f;1f;0;1f;1f;Z2;1f;1e;0;1e;Z4;1e;Z4a;1e;Z3;1f;1e;1e;1e;Z3;1e;
;Z3;1e;1e;1f;1f;1f;1f;1f;1e;1e;1f;1f;0;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1f;0;1f;0;1e;1f;1e;Z2;1f;1e;Z3;1e;Z3b;14;Z
11;1e;1e;0;1e;1f;Z3;1f;1e;1e;1e;1e;1e;Z2;1f;1e;1f;1f;1e;1f;1f;1f;1f;1f;1e;1e;1f;1f;1f;1e;1f;1e;1e;1f;0;1f;0;1f;1f;0;1f;
;1e;0;1e;Za;28;Z3;28;Z41;1e;0;1e;Z5;1e;1e;1e;1e;1e;1f;1e;1f;1f;0;1f;0;1e;1f;1f;1f;1f;1f;1f;1f;1f;1f;1f;1e;1f;1e;1f;0;1e
;1e;1f;1e;1f;0;1f;1e;1e;1e;1e;1e;Z10;28;Z3d;1e;Z2;1e;0;1e;1e;Z4;1e;1e;0;1e;1e;1e;Z2;1e;1e;1f;1e;1f;1e;1f;1e;0;1f;
0;1f;1f;1e;
;1e;1f;0;1e;0;1f;1e;1f;0;1e;0;1e;1e;1f;1e;1e;Z1e;28;Z20;14;Z15;1f;Z5;1f;0;1f;1f;1f;1e;1e;0;1f;0;1f;1e;1f;1e;1f;1f;1f;1f
;1f;1e;1f;1e;1f;1e;1f;1e;0;1f;Z4;1e;0;1e;0;1e;1e;Z2;1e;Z39;14;Z14;1e;Z2;1e;0;1e;Z3;1e;1f;1f;0;1f;1e;1e;1e;1e;0;1f;1
e;1e;1f;
;Z3;1f;1f;1f;Z2;1f;1e;Z2;1e;Z7;1e;Z4;1e;Z6;1e;Z40;14;Z4;1e;Z7;1e;0;1f;1f;1e;Z2;1f;1e;1e;1e;1f;1f;1f;1e;Z2;1f;1f;1f;1
e;1f;1e;1f;Z2;1f;0;1f;1e;0;1e;1e;1e;Z6;1e;Z51;1e;1e;Z6;1e;1e;Z2;1e;0;1e;0;1f;Z3;1f;0;1f;Z3;1e;1e;0;1e;1f;1e;0;1e;0;
1f;1e;Z2;1e;
;Z5a;1e;Z5;1e;0;1f;Z5;1e;1f;1e;Z2;1e;1e;0;1e;1e;1e;1e;1e;Z2;1e;1e;Z2;1f;0;1e;Z6;1e;0;1e;Z5;1e;Z4d;1e;Z5;1f;0;1e
;Z3;1e;1e;1f;1e;1f;Z5;1e;Z2;1e;0;1f;1e;Z4;1e;Z2a;28;Z30;1f;Z9;1e;Z2;1f;Z2;1e;1e;0;1f;Z2;1e;1e;1f;1f;1e;0;1e;Z4;1f;
Z2;1e;Z3;1e;Z3;1e;

Page 6/17
PCE-525 C2 format description

;Z4e;14;Z4;1e;0;1f;Z4;1e;1e;Za;1e;0;1e;Z5;1f;0;1e;0;1e;1f;Z1b;28;Z4a;1e;0;1e;Z4;1e;Z6;1e;0;1e;0;1e;Z4;1e;Z2;1e;
0;1e;1e;Z2;1e;Z55;14;Zc;1e;Z16;1e;Z3;1e;Z3;1e;Zf;28;Z49;1e;Z3;1e;Z7;1e;1e;1e;Z6;1f;1f;Z7;1e;Z4;1f;Z9;1e;Z58;1
e;1e;1e;Z4;1e;Zc;1e;Z5d;14;
;Z18;1f;Za;1e;Z3;1e;0;1e;1e;Z3;1e;Z8;1e;Z47;14;Z7;1e;Zd;1e;Z38;28;Z31;14;Za;1e;Z3;1e;Z1d;1e;Z5a;1e;Ze;1e;0;
1e;Ze;1e;Z67;1e;Z25;1e;Z46;14;Zd;1e;Z3;1e;1e;Z63;a;Z2;14;Z5;14;Z1e;1e;Z8;1e;Z5b;14;Z85;14;Zf6;14;Z5;14;Z5;
1e;Z8d;3c;Zb5;28;Z5a;3c;Z16;3c;
;Z38;3c;Z2e;3c;Zd7;3c;Z24;3c;Z25;3c;Z26;3c;Z14;3c;Z27;3c;Z5f;3c;Z6f;3c;Zb0;3c;Z51;3c;Z105;3c;Zc6;3c;3c;Z82;
3c;Zb3;3c;Zf;3c;Zb;3c;Z4;3c;Z11;3c;Z11;3c;3c;3c;3d;0;3c;0;3c;0;3c;0;3c;3c;;T
END_RESULT;56134
7.2.1.1.1 Haematological parameter format

Id ; value ; flag A ; flag B ; low panic ;low ; high ;high panic [CR]

WBC; 11.0 ;A ;B ; 2.0 ; 4.0 ; 11.0 ; 15.0 [CR]

rank Fields Valeurs possibles


1 Parameter id WBC
2 Parameter value in the selected unit 5.84
+ + + + + (5 plus) if overrange
----- (5 dashes) if unvalid result
3 Flag A • Nothing
• ‘*’ if result is rejected (counting or measure
rejection) or invalidating fault.
• ‘!’ : suspicion
• + over linearity range
4 Flag B Nothing
‘L’ Result < panic value
‘l’ Result < normal value
‘h’ Result > normal value
‘H’ Result > panic value
5 Low Panic value 2.0
6 Low value 4.0
7 High value 6.0
8 High panic value 8.0

7.2.1.2 Alarms list


L1
L5
R1
R2
P1
P2
P3
RL
ALY
HL
NL
NH
IMM
S-UP FAIL
QC-ND
QC-F
INS-T

Page 7/17
PCE-525 C2 format description

O-DF
WBC-BAL
W-CL
R-CL

7.2.1.3 WBC interpretive message

NO_INTERPRETATION
LEU>
LEU<
LYM>
LYM<
MON>
NEU>
NEU<
EOS>
BAS>
LIC
ALY
ERYB
PLTAGGR
7.2.1.4 RBC interpretive message

NO_INTERPRETATION
ANE
ERY>
ANIS>
MACRO
MICRO
COLDAGG
HYPOCR
MACR>
MICR>

7.2.1.5 PLT interpretive report

NO_INTERPRETATION
THR>
THR<
MACROP
MICROP
CELLD
SCHIZ

DYNAMIC MATRIX; [CR] Squeezed DIF matrix


m;m;m;m;m;m;m;m;…;m;m;m;m; [CR]
m;m;m;m;m;m;m;m;…;m;m;m;m; [CR] Variable lines number.
…………
m;m;m;m;m;m;m;m;m;m;m;T[CR]
[CR]

m : compressed ASCII field, 1 to 4 characters.


Each line size is below 250 characters. Lines number is variable.

Page 8/17
PCE-525 C2 format description

7.2.1.6 Dynamic clusters matrices


dynamic clustering matrices are matrices with which thresholds are evaluated through the use of a special
algorithm. This algorithm intends to locate white cells population pretty automatically leading to non-fixed
thresholds. In this case, each cell of the scartergram is determined to be from a cell family or another.
The identification of the cells is given by the value found in the cell:

Code Category
10 LYM with only
one cell
11 LYM
20 MON with only
one cell
21 MON
30 NEU with only
one cell
31 NEU
40 EOS with only
one cell
41 EOS
50 BAS with only
one cell
51 BAS
60 IMM with only
one cell
61 IMM
70 D1 area with
only one cell
71 D1 area
80 Low LYM with
only one cell
81 Low LYM

7.2.1.6.1 Compression

Those matrices have a great footprint that needs to be reduced so that we don’t end up with a fat file..
To proceed, we use a RLE-based compression algorithm headed by a table of content.

Here it goes; we start with an array of 16KB of matrix data, 128x128 bytes to compress.

This is a two step compression:

1°) we run through the 16384 bytes to fill a list with encountered byte values. List size shall not exceed number of
different values stated by the variable threshold algorithm. Once you get your list (look-up table) of different values
(no doubloons !) you can start compressing..

2°) we run through the 16384 bytes again, and this time, you count how many times you get a given byte value.
You then store this counter value with the index (that refers to the byte value in the first list) of that encountered
byte value. Counter and index are converted into base-20 so that it takes less room in the ending file. Each of that
couples (counter, index) are semicolon separated.

Below, compression algo:

Page 9/17
PCE-525 C2 format description

QString UTIL::SqueezeMoreMatrix( u_char *pucSrcMatrix, size_t size)


{
QString strData;
uint uiCurrByte = 0;
QList<uchar> lstLUT;
bool bOk = false;

//build LUT - what are the different encountered chars ?


for(uint iByte = 0; iByte < size; iByte++)
if(!lstLUT.contains(*(pucSrcMatrix + iByte)))
lstLUT.append(*(pucSrcMatrix + iByte));

while(uiCurrByte < size)


{

uchar ucChar = *(pucSrcMatrix + uiCurrByte);


uint uiCurrOffset = 0;

//how many of the same chars ?


while((ucChar == *(pucSrcMatrix + uiCurrByte + uiCurrOffset)) &&
(uiCurrOffset < QString(COMP_MAX_OCC).toUInt(&bOk, COMP_BASE_CONV)))
uiCurrOffset++;

//write down that char using index in LUT


if(uiCurrOffset == 1)
strData += QString::number(lstLUT.indexOf(ucChar), COMP_BASE_CONV) +
";";
else
strData += QString::number(uiCurrOffset, COMP_BASE_CONV) +
QString::number(lstLUT.indexOf(ucChar), COMP_BASE_CONV) + ";";

uiCurrByte += uiCurrOffset;
uiCurrOffset = 0;

//convert each byte value into base-20, more room !


QString strLUT;
foreach(uchar val, lstLUT)
strLUT += QString::number(val, COMP_BASE_CONV) + ";";

strLUT.chop(1);

strLUT.append("|");

//prepend this LUT to compressed data.


return strLUT + strData;

As of a RLE-based compression, the less events in the matrix, the more compressed result, you get, ranging from
109 bytes (for a quite empty matrix) to 8KB (for the most complex ones). Average size would be around 4KB
(against 16KB).

You finally get something like this:

Page 10/17
PCE-525 C2 format description

In red: LUT data separated by a pipe from effective data. Here, 16 different byte values were encountered in that
matrix.
In green: An example of RLE couple (61H,0) which means 61H=>1569 times the byte value we find at index (0 =>
0), which is actually 0. Please note that if a byte value is encountered just one time, we don’t prepend the counter
(example in blue, we just encountered the byte value at index 1 and which is 46 => 70.

0;46;47;51;50;A;B;1F;28;1E;32;14;33;15;3C;3D|61H0;1;30;21;0;21;0;1;F0;1;4I0;1;20;1;0
;2;0;1;2;0;21;20;1;5G0;1;20;1;0;1;2;21;0;1;5H0;1;20;1;20;2;0;1;20;1;40;1;5A0;21;0;1;
0;1;20;21;600;1;3;50;1;0;1;680;1;5H0;34;60;2;0;21;80;1;40;1;4J0;4;70;4;0;1;30;1;D0;1
;500;34;20;24;60;1;5E0;4;0;4;0;4;40;4;5J0;4;40;4;5;0;3;20;24;40;5;180;1;470;5;0;6;20
;5;5J0;5;20;5;6C0;5;40;5;90;1;530;25;30;5;660;6;50;5;0;25;5C0;5;0;5;20;5;20;5;30;25;
0;5;50;1;5E0;6;20;5;20;5;20;5;5H0;5;26;0;5;0;5;0;5;60;1;5D0;5;0;5;60;25;50;1;I0;1;4A
0;6;20;6;5;0;6;5;30;6;20;5;A0;1;520;5;30;6;5;6;35;5G0;25;30;6;5;26;0;25;0;5;E0;1;530
;5;6;25;6;0;5;0;5;5G0;25;6;5;6;5;46;0;6;50;5;0;1;560;5;30;6;5;0;56;0;6;1F0;1;3F0;5;3
0;5;0;D6;E0;1;4J0;6;0;A6;5;6;5D0;5;E6;35;0;25;0;5;560;25;D6;5;5A0;5;0;25;0;A6;5;6;20
;6;60;7;240;8;2H0;5;0;D6;0;5;0;5;5A0;5;C6;5;26;5D0;5;C6;0;6;5;0;5;580;25;6;0;D6;5;30
;25;1A0;8;3F0;35;0;A6;0;26;580;5;40;25;B6;20;5;5D0;B6;5;6;5;20;5;1C0;8;2C0;8;150;C6;
5;6;30;5;50;39;530;86;5;26;20;5;0;5;3J0;8;1C0;56;5;46;0;35;310;8;290;5;0;25;6;0;6;5;
46;35;40;5;5B0;25;36;5;6;5;6;20;25;J0;9;4G0;5;30;5;36;0;6;0;5;6;20;5;D0;9;3G0;8;G0;5
;40;6;5;36;0;46;0;5;40;5;570;5;20;25;26;5;46;5;0;6;100;9;60;9;270;8;1J0;5;0;26;20;6;
0;6;30;6;20;5;80;9;7;0;9;0;9;1I0;8;140;8;210;25;6;25;6;30;5;2F0;8;2G0;5;20;6;5;0;25;
0;5;0;5;0;6;25;20;5;70;9;50;7;520;5;6;0;5;C0;9;60;9;240;8;D0;8;110;8;100;5;60;5;E0;9
;60;9;230;8;A0;28;250;5;0;5;30;A;40;2A;0;9;20;9;0;9;0;9;0;29;60;29;40;9;C0;9;3E0;5;4
0;5;20;5;A;30;2A;70;9;0;7;40;9;80;9;0;9;240;8;D0;8;1A0;5;B;0;B;B0;9;7;9;40;9;0;9;50;
7;9;20;9;110;9;180;8;30;8;1H0;B;0;B;40;B;2A;0;C;A;80;39;0;29;0;9;30;29;0;29;20;29;2B
0;28;C0;8;110;B;0;B;40;B;0;2A;0;2A;90;39;7;0;29;40;29;40;9;200;8;260;B;30;B;0;B;80;D
;B;0;29;0;9;0;9;40;27;9;0;9;20;29;0;9;30;9;40;9;1A0;8;100;8;160;B;30;D;30;B;20;2D;B;
30;B;50;9;0;7;40;7;20;9;0;9;0;9;0;39;4A0;D;30;B;D;2B;D;50;B;30;9;0;7;9;30;7;29;7;9;7
;9;20;9;7;20;9;220;8;E0;8;0;8;20;8;170;2B;0;B;40;B;60;9;60;9;7;9;27;9;0;9;30;49;7;0;
9;60;29;1A0;8;260;B;0;B;0;B;0;B;0;D;20;B;0;2B;30;B;30;7;9;7;9;0;9;7;29;77;9;7;29;0;7
;9;7;9;20;9;420;B;30;B;0;D;50;B;60;7;0;29;27;9;27;0;27;29;0;9;0;9;0;7;20;29;50;9;3H0
;B;30;D;0;B;20;B;20;B;70;9;7;0;9;7;9;7;0;37;9;77;20;9;7;0;9;0;7;410;B;D;50;2B;A0;29;
0;29;7;9;57;9;7;9;7;9;0;9;7;9;7;29;7;0;9;B0;9;3F0;B;D;B;0;B;0;B;40;B;0;D;9;0;7;0;47;
9;37;9;77;9;37;9;37;40;9;3D0;B;60;B;0;B;0;2B;40;B;0;B;30;9;30;7;9;20;7;9;37;9;47;9;2
7;0;7;0;7;29;7;9;450;B;0;B;20;B;20;B;0;B;30;9;20;7;9;0;H7;0;37;39;60;9;380;B;40;B;20
;D;B;0;2B;0;2D;B;0;3B;30;7;9;27;0;97;9;27;9;97;20;9;400;2B;0;B;D;20;B;90;B;0;9;7;9;1
37;9;7;9;60;9;0;9;390;2B;40;B;0;B;20;B;B0;9;0;9;47;9;77;9;57;9;27;49;7;9;20;9;40;9;4
0;9;350;B;0;D;0;4B;40;B;60;39;27;9;7;0;9;37;9;B7;9;7;9;7;0;9;27;3B0;B;40;B;20;B;20;B
;20;B;60;B;20;D;B;0;29;20;47;0;27;9;97;9;27;0;27;29;3G0;3B;0;2B;60;B;30;B;20;B;20;D;
0;29;27;0;I7;9;7;9;7;9;37;0;9;0;39;3C0;B;30;B;30;B;A0;9;0;7;0;9;7;9;77;9;47;9;7;9;7;
9;0;7;39;0;7;50;7;20;9;320;B;60;B;0;2B;D;20;B;90;D;0;2B;137;9;47;0;9;20;9;30;9;390;B
;70;2B;90;B;20;39;7;0;27;9;F7;9;37;9;7;9;20;7;49;350;B;60;B;30;B;A0;B;30;B;D;47;9;27
;9;D7;0;47;0;7;0;29;20;9;20;9;0;9;310;B;30;B;30;B;0;B;E0;2B;0;D;0;9;47;9;F7;0;29;7;9
;40;9;60;9;350;B;30;B;40;B;60;B;D;0;B;20;B;D;9;7;9;7;9;77;9;A7;20;27;9;0;9;20;9;3G0;
B;E0;2B;20;D;20;7;9;0;7;9;27;29;27;9;57;9;7;0;7;9;7;9;27;0;7;4G0;B;0;D;47;0;7;29;77;
9;87;0;9;7;20;39;0;9;3F0;D;H0;2B;0;7;9;0;9;7;29;20;7;0;7;9;7;0;9;37;9;37;29;0;9;0;9;
40;9;4D0;B;0;7;9;7;0;7;9;7;9;27;20;9;57;9;27;0;7;0;29;7;0;9;40;9;3G0;B;G0;2B;0;37;9;
7;9;7;0;37;0;9;27;20;9;20;7;420;B;F0;2B;20;B;40;29;7;9;27;9;0;39;7;0;7;9;0;7;20;29;0
;7;29;0;9;4F0;B;0;B;20;D;20;27;9;27;0;9;0;7;30;9;7;9;20;9;0;29;40;9;440;B;F0;B;0;9;0
;9;20;39;0;9;7;9;20;29;20;9;70;29;440;B;F0;9;40;9;0;29;30;7;20;9;0;7;60;9;570;9;30;7
;0;9;20;9;5G0;9;7;20;9;0;29;H0;9;560;E;0;E;30;F;9;0;2E;20;E;0;29;4J0;E;40;E;60;E;B0;
E;20;E;4F0;E;80;E;190;E;540;E;640;E;70;E;20;E;850;E;4D0;E;CE0;E;1IB0;E;I40;E;50;E;20
;E;90;E;G0;E;30;E;20;E;0;E;70;E;B0;

Page 11/17
PCE-525 C2 format description

7.2.1.6.2 Decompression

Expanding data is exact reverse process. First, you would extract the LUT from the given data, this LUT is
separated from data by a pipe character ‘|’.
In the previous example, the LUT would be:

0;46;47;51;50;A;B;1F;28;1E;32;14;33;15;3C;3D

..which says: “ok, this is a compression with up to 16 different char values !”.
In 10-base, those values are 0;86; 87; 101;35;48;100;62;24;63;25;72;73 (remember, we’re using 20-base storing
conversion.)

Once you get your real values, you just put into an array of 16KB the result of value conversion. Data are actually
20-base indexes that refer to the LUT table.
For instance, 61H0 says “I put 2437 times the value indexed by ‘0’ which is 0”.. and so on..

bool UTIL::UnSqueezeMoreMatrix( u_char* pcData , QString &strSrc)


{
bool bOk = false;

//get LUT back !


QList<uchar> lstLUT;

QStringList lststrLUT = strSrc.mid(0, strSrc.indexOf("|")).split(";");


foreach(QString str, lststrLUT)
lstLUT.append(str.toUInt(&bOk, COMP_BASE_CONV));

//split data into a list of items to convert


QStringList lstItem = strSrc.mid(strSrc.indexOf("|") + 1,
strSrc.size()).split(";");

uint uiCurrOffset = 0;
foreach(QString strItem, lstItem)
{

if(strItem.size() == 1)
{//if item is 1-byte long, then convert it and put it once in target array
*(pcData + uiCurrOffset) = lstLUT.at(strItem.toUInt(&bOk,
COMP_BASE_CONV));
uiCurrOffset++;
}
else
{//if item is longer, put the converted value as many times as needed
uint uiNbOcc = strItem.mid(0, strItem.size() - 1).toUInt(&bOk,
COMP_BASE_CONV);
uchar ucVal = lstLUT.at(strItem.mid(strItem.size() - 1, strItem.size()
).toUInt(&bOk, COMP_BASE_CONV));
memset(pcData + uiCurrOffset, ucVal, uiNbOcc);
uiCurrOffset += uiNbOcc;
}
}

return true;

Page 12/17
PCE-525 C2 format description

7.2.2 CALIBRATION

PCE-525 Host

PCE-525;1;610207-000451;;BILL[CR]
Sending calibration report CALIBRATION

7.2.2.1 Sending calibration report

PCE-525;1;610000-000000;;A;
CALIBRATION
DATE;14/05/2017
TIME;15:31:36
OPERATOR;B
ITEM_CALI;5
COEFF
WBC;1.042
RBC;1.090
HGB;1.046
MCV;1.111
PLT;1.290
MPV;1.133
TARGET
UNIT;1
LOT;PLUS0517
LOT DATE;27/04/2017
LOT TIME;14:13:22
EXPIRY DATE;05/06/2017
OPERATOR;BIOLO
SOURCE;O
WBC;9.0 ;0.0
RBC;4.62 ;0.0
HGB;13.1;0.0
MCV;84.9 ;0.0
PLT;283 ;0.0
MPV;;0.0
END_CALI;11528

PCE-525;W;X;;Y;[CR]

Where :
W is the Free instrument number (2 chars maximum).

Page 13/17
PCE-525 C2 format description

X is the Free serial number (13 chars).


Y is the user login, UTF8 coded.

Following by the N results used for the calibration.

7.2.2.2 Result

PCE-525;1;610000-000000;;A;
RESULT
DATE;27/04/2017
TIME;14:40:37
MODE;CALIBRATION
UNIT;1
SEQ;1;0
TEST;LMG
OPERATOR;LL
PREL;OT
CYCLE;N
WBC;8.7 ; ;L; ;
RBC;4.31 ; ;L; ;
HGB;12.4; ;L; ;
MCV;76.5 ; ;L; ;
PLT;220 ; ;L; ;
MPV;;;;;
END_RESULT;1302

Page 14/17
PCE-525 C2 format description

7.2.3 QC

PCE-525 Host

Sending QC result PCE-525;1;610207-000451;BILL[CR]


QC

7.2.3.1 Result

PCE-525;1;610000-000000;;A;
RESULT
DATE;27/04/2017
TIME;15:05:01
MODE;QC
UNIT;1
SEQ;26
LOT;MYT1704L
LOT DATE;27/04/2017
LOT TIME;14:58:45
LEVEL;L
EXPIRY DATE;05/06/2017
USER;BIOLO
OPERATOR;BIOLO
PREL;OT
CYCLE;N
WBC;2.6 ; ; ; ;2.2 ;3.2 ;
LYMP;49.9; ; ; ;43.8;59.8;
MONP;13.5; ; ; ;5.5 ;19.5;
NEUP;33.1; ; ; ;24.2;40.2;
LYM;1.3 ; ; ; ;1.1 ;1.7 ;
MON;0.4 ; ; ; ;0.1 ;0.5 ;
NEU;0.9 ; ; ; ;0.6 ;1.2 ;
RBC;2.25 ; ; ; ;2.02 ;2.32 ;
HGB;6.0 ; ; ; ;5.4 ;6.4 ;
HCT;17.7; ; ; ;14.7;18.7;
MCV;78.6 ; ; ; ;71.8 ;81.8 ;
MCH;26.7; ; ; ;24.5;29.5;
MCHC;33.9; ; ; ;32.1;38.1;
RDW-CV;10.6; ; ; ;8.4 ;16.4;
RDW-SD;34.8 ; ; ; ;33.7 ;41.7 ;
PLT;46 ; ; ; ;28 ;68 ;
MPV;11.4; ; ; ;8.6 ;14.6;
END_RESULT;22174

Page 15/17
PCE-525 C2 format description

7.2.4 Repeatability
No emissions.

7.3 Control sum


The control sum is a CRC code : CRC-16.

7.3.1 Algorithmic
The used source code is available here below( C code ).
It allows generating standard CRC-16.

This algorithm is mainly used in embedded systems ( like hard disk controller).
For best performance, compute is done from a seek table with 16 values.
Here is the CRC computation:

CRC = 0xFFFF
For each nibble :
Work on high weight nibble :
Index = byte EXCLUSIVE OR CRC
Index = Index AND 000F
CRC = Table(Index) EXCLUSIVE OR (CRC divided by 16)
Work on low weight nibble :
Index = byte divided by 16
Index = Index EXCLUSIVE OR CRC
Index = Index AND 000F
CRC = Table(Index) EXCLUSIVE OR (CRC divided by 16)

7.3.2 C language source example implementation


Seek table declaration :
static const unsigned short ausCrcTab1[] =
{
0x0000, 0xCC01,0xD801,0x1400,0xF001,0x3C00,0x2800,0xE401,
0xA001,0x6C00,0x7800,0xB401,0x5000,0x9C01,0x8801,0x4400,
};

CRC computation :

unsigned short calc_crc(unsigned char *pucData, long lSize)


{
unsigned short usAcc1 = 0xFFFF;

while ( lSize > 0 )


{
/* gestion par quartet du calcul */
usAcc1 = ausCrcTab1[(*pucData ^ usAcc1) & 15] ^ (usAcc1 >> 4);
usAcc1 = ausCrcTab1[((*pucData >> 4) ^ usAcc1) & 15] ^ (usAcc1 >> 4);

pucData++;
lSize--;
}

return(usAcc1);
}

^ : EXCLUSIVE OR
>> : logical right shift.
& : logical and.

Page 16/17
PCE-525 C2 format description

This CRC is computed form the beginning sent data until the end of line ([CR] included ) preceding the checksum
line ( identifier + value ).

Page 17/17

You might also like