ACTOHOST.HTM

 

 

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