1. ACTO RS-232 COMMUNICATION CHANNEL
The ACTO analyser is a master
processor: this means that
the interface functions are controlled by the ACTO
analyser only when it is in the specific state in the menu
tree.Moreover, in the current release ACTO is not sending error codes to
the PC because the PC is a slave
unit used only as
remote terminal and disk unit.
The ACTO analyser has two
modes of working through the serial port:
- RS-232 consolle mode
- Host-computer link mode
The RS-232 consolle mode
allows to use a PC, with the ACTOPC
software, as a remote terminal of the
ACTO. Il allows to store and
to read work-list and method files in the PC. In this case, the RS-232 link is set by default to:
57600 Baud
8 Bits
1 Stop bit
No parity
In
the host-computer link mode, the
communication between the ACTO
and the host-computer follows a
binary frame protocol described in the following pages.
The RS-232 link with the host-computer is set to:
Baud rate: 300, 600, 1200, 2400, 4800,
9600, 19200, 57600
8 Bits
1 Stop bit
No parity
The
working mode is set in the SERVICE MENU, EDIT PARAMETERS (F5, F1):
|
Printer mode (0=int./1=ext.PC/2=ext.loc.):p: Remote
consolle enable (0=no, 1=yes)
:c: Baud
rate (for host computer only)
:bbbbb: |
c: 0 for host-computer mode
1 for RS-232 consolle mode
bbbb:
selectable baud-rate, only for host-computer mode
300, 600, 1200, 2400, 4800, 9600, 19200,
57600
|
THE RS-232 CABLE |
THE 25-M TO 9-F
ADAPTOR |
|||||
|
ACTO Analyser
DB25-M |
DESCR. |
DESCR. |
PC
RS-232
DB25-F |
PC RS-232
DB25-M |
DESCR. |
PC
RS-232
DB9-F |
|
2 3 5 20 7 |
TXD RXD CTS DTR GND |
RXD TXD DTR CTS GND |
3 2 20 5 7 |
3 2 20 5 7 |
RXD TXD DTR CTS GND |
2 3 4 8 5 |
2. RS-232 HANDSHAKES
The
ACTO CTS input signal (pin 5) enables ACTO transmission .
The
ACTO DTR output signal (pin 20) enables PC transmission.
3. DEFINED CONSTANTS
MAXMET 32
Number of on-line chemistries on ACTO
MAXMET2 64
Total number of chemistries on ACTO (32+32)
NSAMPLES 63
Total number of samples (patients on ACTO)
NPATIENTS 463
Total number of patients on PC files
DATA
STRUCTURES
4. SAMPLES STRUCTURE
Record
length: 512 bytes
|
FIELD |
TYPE |
LENGTH bytes |
DESCRIPTION |
|
Code PcRecord Urgency Tests Test2 Results Cognome Nome Nascita Sesso AddrVia AddrCap AddrCitta AddrProv Telefono Descr1 Descr2 Descr3 Spare |
13 char 1 int 1 u.char 8 u.char 8 u.char 64 float 20 char 20 char 3 char 1 char 30 char 6 char 20 char 10 char 12 char 30
char 30
char 30
char 12
char |
13 2 1 8 8 256 20 20 3 1 30 6 20 10 12 30 30 30 12 |
Sample
ID code/name Pointer
to PC pat. file record Urgency
flag (0/NZ) 64
bit-fields for 32+32 tests 64
bit-flags for test executed 64
results of 4-byte IEEE float Patient
Family Name First Name Date of Birth Sex Address Post Code Town Province/State Telephone number Description 1 Field Description 2 Field Description 3 Field Spare |
ACTO
patients: array of NSAMPLES sample
records
Pc patients: array of NPATIENTS sample records
ACTO.PT2
Patients file: NPATIENTS records of 512 = 237056 bytes
Initialization
value of results: -99999999999.999 = null result
5. METHODS STRUCTURE
|
Pos |
FIELD |
TYPE |
LENGTH bytes |
DESCRIPTION |
|
0 2 4 6 8 9 10 11 12 ---- 13 14 15 16 17 19 21 23 24 25 29 33 37 41 45 49 53 57 61 65 80 83 85 87 88 92 96 128 |
Type Filters IncTime IncTime2 StabTime MeasTime NStd NCtls Flags -------- ReagPos NWash StdPos CtlPos SampVol ReagVol Reag2Vol DilFlag Unit Factor ValStd BlankMin BlankMax MinVal MaxVal LinVal Spare Dilution DepLimit Name Code IncTime3 Reag3Vol CalcMode MinCtl1 MaxCtl1 Curve Std Curve OD |
u.int u.int int int byte byte byte byte byte ----- byte byte byte byte int int int byte byte float float float float float float float ----- float float char char int int byte float float float float |
2 2 2 2 1 1 1 1 1 ---- 1 1 1 1 2 2 2 1 1 4 4 4 4 4 4 4 4 4 4 15 3 2 2 1 4 4 32 32 |
Method Type Method Filters Incubation Time Reagent 2 Incubation Time Stabilization Time Measure Time N. of Standards N. of Controls bit0: Blanks used in calc. bit1: Factors automat.stored Reagent Position N. of Washes Position of Standard Position of Control Sample Volume Reagent Volume Reagent 2 Volume Predilution 0=no/1=dil/2=dil+recalc Unit Factor Value of the Standard Minimum value of the Blank Maximum value of the Blank Min. Test Limit Value Max. Test Limit Value Linearity Value ------------------------------------ Dilution Rate Substrate Depletion Limit Method Name Method Code Reagent 3 incubation time Reagent 3 volume 1=lin.regr/2=polilinear/3=cubic
spl. Not used Not used 8 floats Curve Standard
Value 8 floats Curve Optical
Density |
|
|
Total |
|
160 |
|
Array
of MAXMET2 method elements. Record length: 160 bytes
For
field description, see METHOD FIELDS page M-4
6. PROFILES
Array
of 4 char: every profile is defined by 32 bit-fields
Profiles[16][4]
7. METHODS FILE
-
Methods 64 x 160 = 10240 bytes
-
Profiles 16 x 4
= 64 bytes
-
File length 10304 bytes
COMMANDS
TO PC
8. BASIC COMMANDS TO PC
|
BASIC COMMANDS TO PC |
DURING EXEC. |
USED BY MACRO COMMAND |
|
SEND A METHOD SEND PROFILES WRITE METHODS REQUEST RECEIVE A METHOD RECEIVE PROFILES READ METHODS REQUEST READ WORKLIST REQUEST RECEIVE MODE RECEIVE A PATIENT SEND A PATIENT SEND MODE SEND A RESULT WRITE A PATIENT REQUEST READ A PATIENT REQUEST SEND KINETIC BUFFER |
YES YES |
SEND
METHODS SEND
METHODS SEND
METHODS LOAD
METHODS LOAD
METHODS LOAD
METHODS LOAD
WORK-LIST LOAD
WORK-LIST LOAD
WORK-LIST SEND
ACTO-CREATED PATIENTS SEND
RESULTS SEND
RESULTS SEND
RESULTS SEND
RESULTS NO |
9.
MACRO COMMANDS TO PC
|
MACRO COMMANDS TO PC |
REMOTE CONSOLLE
ENABLED |
R.C.DISABLED |
|
SEND
METHODS RECEIVE
METHODS LOAD
WORK-LIST SEND
ACTO PATIENTS SEND
RESULTS |
CHEMISTRIES MENU F3 F1 CHEMISTRIES MENU F3 F2 WORK-LIST
MENU F2 RESULTS
MENU F3 F2 RESULTS
MENU F3 F1/F2 |
F6 F1 F6 F2 F6 F3 F6 F4 F6 F5 |
When the remote consolle is disabled
(0) in EDIT PARAMETERS (User manual SERVICE S-2), the HOST can use the macro
commands from all the high-level menus (MAIN, WORK-LIST,
CHEMISTRIES, RESULTS, SERVICE)
with the F6 Fn command (see upper table).
10.
BASIC COMMANDS
PROTOCOL
Where
defined, the checksum is calculated as the unsigned integer (modulo 16 bits)
sum of all the concerned bytes, seen as unsigned integers.
Communication codes:
ESC = 1BH
NO_ERROR ACK
= 06H
ERROR NACK
= 15H
SEND
METHODS FROM ACTO TO PC
11.
SEND A METHOD
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_METHOD
PC
< ACTO byte Method Number (1 ...
MAXMET2)
PC
< ACTO byte nn = length in bytes of
Method structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO nn bytes of data (Method
structure)
PC
< ACTO int (lsb - msb) checksum of
the nn data bytes
PC
> ACTO NO_ERROR/ERROR
12.
SEND PROFILES
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_PROFILES
PC
< ACTO int (lsb-msb) nn = length in
bytes of Profiles structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO nn bytes of data (Profiles
structure)
PC
< ACTO int (lsb - msb) checksum of
the nn data bytes
PC
> ACTO NO_ERROR/ERROR
13.
WRITE METHODS
REQUEST
PC
< ACTO ESC
PC
< ACTO WRITE_METHODS
PC
> ACTO NO_ERROR/ERROR
SEND
METHODS FROM PC TO ACTO
14.
READ METHODS
REQUEST
PC
< ACTO ESC
PC
< ACTO READ_METHODS
PC
> ACTO NO_ERROR/ERROR
15.
RECEIVE A METHOD
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO RECEIVE_METHOD
PC
< ACTO byte Method Number (1 ...
MAXMET2)
PC
< ACTO byte nn = length in bytes of
Method structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
> ACTO nn bytes of data (Method
structure)
PC
> ACTO int (lsb - msb) checksum of
the nn data bytes
16.
RECEIVE PROFILES
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO RECEIVE_PROFILES
PC
< ACTO int (lsb-msb) nn = length in
bytes of Profiles structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
> ACTO nn bytes of data (Profiles
structure)
PC
> ACTO int (lsb - msb) checksum of
the nn data bytes
SEND
WORK-LIST FROM PC TO ACTO
17.
READ WORKLIST
REQUEST
PC
< ACTO ESC
PC
< ACTO READ_WORKLIST
PC
> ACTO NO_ERROR/ERROR
18.
RECEIVE MODE
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO RECEIVE_MODE
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
> ACTO 3 bytes of Date dd/mm/yy (yy = year - 1900)
PC
> ACTO byte select panel: 0 for Panel 1, 1 for Panel 2
PC
> ACTO int (lsb - msb) checksum of
the 4 data bytes
19. RECEIVE A PATIENT
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO RECEIVE_PAT
PC
< ACTO byte Patient Number (1 ...
NSAMPLES)
PC
< ACTO int (lsb - msb) nn length in
bytes of Patient structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
> ACTO nn bytes of data (Patient
structure)
PC
> ACTO int (lsb - msb) checksum of
the nn + 2 bytes
(2 bytes struct.length + nn bytes
data)
SEND
ACTO PATIENTS FROM ACTO TO PC
20.
SEND A PATIENT
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_PAT
PC
< ACTO int (lsb - msb) Patient
number on PC (1 ... NPATIENTS)
PC
< ACTO int (lsb - msb) nn length in
bytes of Patient structure
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO nn bytes of data (Patient
structure)
PC
< ACTO int (lsb - msb) checksum of
the nn + 4 bytes
(2 b. pat.number + 2 b.
struct.length + nn bytes data)
PC
> ACTO NO_ERROR/ERROR
SEND
RESULTS FROM ACTO TO PC
21.
SEND MODE
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_MODE
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO 3 bytes of Date dd/mm/yy (yy = year - 1900)
PC
< ACTO int (lsb - msb) checksum of the
3 data bytes
PC
> ACTO NO_ERROR/ERROR
22.
READ A PATIENT
REQUEST
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO READ_PATIENT
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO int (lsb-msb) Patient PC
Number (1 ... NPATIENTS)
PC
< ACTO int (lsb - msb) checksum of
the 2 data bytes
PC
> ACTO NO_ERROR/ERROR
23.
WRITE A PATIENT
REQUEST
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO WRITE_PATIENT
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO int (lsb-msb) Patient PC
Number (1 ... NPATIENTS)
PC
< ACTO int (lsb - msb) checksum of
the 2 data bytes
PC
> ACTO NO_ERROR/ERROR
24.
SEND A RESULT
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_RESULT
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO int (lsb-msb) Patient Number
(1 ... NPATIENTS)
PC
< ACTO byte Method Number (1 ... MAXMET2)
PC
< ACTO byte Write Mode (0=no write req, NZ=write
req)
PC
< ACTO float (lsb-msb) Result
PC
< ACTO int (lsb - msb) checksum of
the 8 data bytes
PC
> ACTO NO_ERROR/ERROR
25.
SEND KINETIC
BUFFER
Maximum
length of the buffer is KINE_LEN.
PC
< ACTO ESC
ACTO flushes the serial input
PC
< ACTO SEND_KINE_BUFF
PC
> ACTO NO_ERROR/ERROR (if ERROR,
abort)
PC
< ACTO int (lsb - msb) Buffer length
(nn bytes)
PC
< ACTO nn/4 float (4 bytes lsb-msb)
Optical Densities Array
PC
< ACTO int (lsb - msb) checksum of
the (2 + nn) bytes
(2 bytes buffer length + nn bytes
of data)
PC
> ACTO NO_ERROR/ERROR
MACRO
COMMANDS TO PC
26.
SEND METHODS
FROM ACTO TO PC
@
row 1: "DUMP METHODS FROM
ANALYSER TO PC"
Loop
from method 1 to method MAXMET2:
@ row 2:
"Meth. xx"
SEND A METHOD xx
Abort on error
@
row 3: "Profiles"
SEND
PROFILES
Abort
on error
@
row 4: "Disk write"
WRITE
METHODS REQUEST
@
row 6: On error: "Transmission
error"
27.
LOAD METHODS
FROM PC TO ACTO
@
row 1: "LOAD METHODS FROM PC TO
ANALYSER"
@
row 2: "Disk read"
READ
METHODS REQUEST
Loop
from method 1 to method MAXMET2:
@ row 3:
"Meth. xx"
RECEIVE A METHOD xx
Abort on error
@
row 4: "Profiles"
RECEIVE
PROFILES
Abort
on error
@
row 6: On error: "Receive
error"
Else: "Do you want to save permanently (0 = no, 1 = yes)
?"
28.
LOAD WORK-LIST
FROM PC
@
row 9: "Work-list loading"
RECEIVE
MODE
Abort
on error
@
row 10: "Disk read"
READ
WORKLIST REQUEST
Abort
on error
Loop
from patient 1 to NSAMPLES:
@ row 11: "xx"
RECEIVE A PATIENT xx
Abort on error
@
row 13: If no-error "Work-list loading completed"
else "Computer not connected"
else "Receive error"
29.
SEND ACTO
PATIENTS TO PC
@
row 9: "Transmit ACTO-created
patients to PC"
Loop
from patient 1 to NSAMPLES:
@ row 11: "xx"
SEND A PATIENT xx
Abort on error
@
row 14: If no-error "Transmission completed"
else "Computer not connected"
else "Transmission error"
30.
SEND RESULTS TO
PC
@
row 9: "Transferring results"
SEND
MODE
Abort
on error
Loop
from patient 1 to NSAMPLES:
@ row 18: "xx"
READ A PATIENT REQUEST
Loop on existing results:
SEND A RESULT patient xx, method mm
Abort on error
WRITE A PATIENT REQUEST
@
row 20: If no-error "Transmission completed",
else "Computer not connected",
else "Transfer error patient xx"
31.
BASIC COMMANDS HEX CODES
|
Hex
Code |
Command |
|
ESC
+ 80H ESC + 81H ESC + 82H ESC + 84H ESC + 85H ESC + 87H ESC + 88H ESC + 89H ESC + 8AH ESC + 8BH ESC + 8CH ESC + 8DH ESC + 8EH ESC + 8FH ESC + 90H ESC + 91H |
SEND_KINE_BUFF
SEND_METHOD SEND_PROFILES RECEIVE_METHOD RECEIVE_PROFILES
WRITE_METHODS READ_METHODS RECEIVE_PAT SEND_RESULT RECEIVE_MODE SEND_PAT SEND_MODE READ_WORKLIST WRITE_WORKLIST WRITE_PATIENT READ_PATIENT |
32.
KEYBOARD
FUNCTION KEYS
|
Hex Code |
Function key |
|
E0H |
F1 |
|
E1H |
F2 |
|
E2H |
F3 |
|
E3H |
F4 |
|
E4H |
F5 |
|
E5H |
F6 |
|
E6H |
F7 |
|
E7H |
F8 |
|
E8H |
F9 |
|
E9H |
F10 |