2 serial communication with checksum – INFICON IC/5 Thin Film Deposition Controller User Manual
Page 186
7 - 44
IP
N 07
4-
23
7A
E
IC/5 Operating Manual
7.8.2.2 Serial Communication with Checksum
5 ‘——IC/5 RS-232C COMMUNICATIONS PROGRAM WITH CHECKSUM——
10 OPEN “COM1:2400,N,8,1” FOR RANDOM AS #1
20 STX$ = CHR$(2) : NAK$ = CHR$(21) : ACK$ = CHR$(6)
22 CMD$ = “RG 01”
23 GOSUB 80
24 CMD$ = “RG 02”
25 GOSUB 80
30 INPUT “ENTER COMMAND”; CMD$
40 GOSUB 80
41 IF RESPONSE$ = “RECEIVE TIMEOUT” THEN 50
42 L = LEN(RESPONSE$): L = L - 1
44 RESPONSE$ = RIGHT$(RESPONSE$,L)
50 PRINT RESPONSE$
60 GOTO 30
70 ‘
80 ‘——TRANSMIT COMMAND AND RECEIVE RESPONSE SUBROUTINE——
90 ‘
100 ‘——SEND COMMAND——
110 SIZEM$ = CHR$(LEN(CMD$) / 256)
120 SIZEL$ = CHR$(LEN(CMD$) MOD 256)
130 CHECKSUM = 0
140 FOR X = 1 TO LEN(CMD$)
150 CHECKSUM = CHECKSUM + ASC(MID$(CMD$,X,1))
160 NEXT X
170 CHECKSUM$ = CHR$(CHECKSUM AND 255)
180 PRINT #1, STX$ + SIZEM$ + SIZEL$ + CMD$ + CHECKSUM$
190 ‘
200 ‘——RECEIVE RESPONSE——
210 TOUT = 4: GOSUB 390
220 IF I$ <> STX$ THEN 180
230 TOUT = 3: GOSUB 390
240 SIZE = 256 * ASC(I$)
250 TOUT = 3: GOSUB 390
260 SIZE = SIZE + ASC(I$)
270 CHECKSUM = 0
280 RESPONSE$ = “”
290 FOR I = 1 TO SIZE
300 TOUT = 3: GOSUB 390
310 RESPONSE$ = RESPONSE$ + I$
320 CHECKSUM = CHECKSUM + ASC(I$)
330 NEXT I
340 TOUT = 3: GOSUB 390
350 N = ASC(I$)
360 IF N <> (CHECKSUM AND 255) THEN PRINT “RESPONSE CHECKSUM ERROR”
370 RETURN
380 ‘
390 ‘——READ CHARACTER FROM INSTRUMENT TO I$——
400 ON TIMER (TOUT) GOSUB 430: TIMER ON
410 IF LOC(1) < 1 THEN 410 ELSE TIMER OFF: I$ = INPUT$(1,#1)
420 RETURN
430 TIMER OFF: RESPONSE$ = “RECEIVE TIMEOUT”: RETURN 440
440 RETURN 370