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