Lakeshore Learning Materials 647 User Manual

Page 40

Advertising
background image

Lake Shore Model 647 Magnet Power Supply User’s Manual

Remote Operation

4-10

Table 4-3

Sample BASIC Serial Interface Program

'

SEREXAM.BAS EXAMPLE PROGRAM FOR SERIAL INTERFACE

'

This program works with QuickBasic 4.0/4.5 or Qbasic on an IBM PC or compatible

'

with a serial interface. It uses the COM1 communication port at 9600 BAUD. Enter

'

an instrument command or query at the prompt. The command transmits to the

'

instrument which displays any query response. Type "EXIT" to exit the program.

'

NOTE: The INPUT instruction in this example accepts no commas as part of an input

'

string. If a comma appears in an instrument command, replace it with a space.

'

CLS

'Clear screen

PRINT " SERIAL COMMUNICATION PROGRAM"

PRINT

TIMEOUT = 2000

'Read timeout (may need more)

BAUD$ = "9600"

TERM$ = CHR$(13) + CHR$(10)

'Terminators are <CR><LF>

OPEN "COM1:" + BAUD$ + ",N,8,1,RS" FOR RANDOM AS #1 LEN = 256

LOOP1: INPUT "ENTER COMMAND (or EXIT):"; CMD$ 'Get command from keyboard

CMD$ = UCASE$(CMD$)

'Change input to upper case

IF CMD$ = "EXIT" THEN CLOSE #1: END

'Get out on Exit

CMD$ = CMD$ + TERM$

PRINT #1, CMD$;

'Send command to instrument

IF INSTR(CMD$, "?") <> 0 THEN

'Test for query

RS$ = ""

'If query, read response

N = 0

'Clr return string and count

WHILE (N < TIMEOUT) AND (INSTR(RS$, TERM$) = 0) 'Wait for response

IN$ = INPUT$(LOC(1), #1)

'Get one character at a time

IF IN$ = "" THEN N = N + 1 ELSE N = 0 'Add 1 to timeout if no chr

RS$ = RS$ + IN$

'Add next chr to string

WEND

'Get chrs until terminators

IF RS$ <> "" THEN

'See if return string is empty

RS$ = MID$(RS$, 1, (INSTR(RS$, TERM$) - 1)) 'Strip off terminators

PRINT "RESPONSE:"; RS$

'Print response to query

ELSE

PRINT "NO RESPONSE"

'No response to query

END

IF

END IF

'Get next command

GOTO

LOOP1

Advertising