User`s guide
4-35
Programming
Programming Examples
Description Line No.
10 to 170 Same as in Example 1 except for declaration of
Status_byte
.
190 to 240 The new
Wait_to_settle
subroutine.
200 Start
REPEAT
loop.
210 Send the *STB? command to the switch. This queries the
switch to return the value of the status byte.
220 Read the status byte.
230 If the LSB (Least Significant Bit) of the status byte is
0 (that is, the switch is settled), exit the loop. If the LSB is
1 (that is, the switch is moving), then loop back to line 200.
240 Return from subroutine.
Example 3: Switch position using the *OPC command
This program is identical in functionality to the first two example programs,
except that it uses yet another method for determining when the switch is set-
tled. This settling method sends the *OPC command before the
ROUTE:LAYER:CHANNEL commands and then reads the Standard Event Sta-
tus Register repeatedly until bit 0 is set to one.
Listing 10 INTEGER Switch_addr,A_position,B_position,Esr_byte
20 DIM Command$[80],Channel$[80],Error_return$[80],
Config$[80]
30 Switch_addr=711
40 CLEAR SCREEN
41 OUTPUT Switch_addr;"SYSTEM:CONFIG?"
42 ENTER Switch_addr;Config$
43 PRINT "SWITCH CONFIG = "&Config$
50 INPUT "Enter A-port position : ",A_position
60 INPUT "Enter B-port position : ",B_position
70 Channel$="A"&TRIM$(VAL$(A_position))&",B"&TRIM$
(VAL$(B_position))
80 Command$="ROUTE:LAYER1:CHANNEL "&Channel$
81 OUTPUT Switch_addr;"*OPC"
90 OUTPUT Switch_addr;Command$
100 GOSUB Wait_to_settle
110 REPEAT
120 OUTPUT Switch_addr;"SYSTEM:ERROR?"
130 ENTER Switch_addr;Error_return$