7-86 Chapter7
Programming Examples
Analyzer System Setup Examples
330 OUTPUT @Nwa;”FORM3;” ! Form 3 64 bit floating point data
340 OUTPUT @Nwa;”OUTPCALC01;” ! Request the cal array
350 !
360 ! Read the #A and 2 byte length as integers
370 ENTER @Nwa_bin;Header,Cal_len,Cal_array(*) ! Read cal array data
380 !
390 ! Write instrument state data to disk file
400 File$=”A:DATAFILE” ! Example HP BASIC for Windows data
file
410 ! File$ = “DATAFILE:,1406” ! Example Workstation HP BASIC data
file
420 CREATE BDAT File$,1,Str_len+Cal_len+8 ! Create data file once!
430 ASSIGN @File TO File$ ! Assign I/O path to file
440 OUTPUT @File;Header,Str_len,State(*) ! Send learn string to disk file
450 OUTPUT @File;Header,Cal_len,Cal_array(*) ! Send CAL arrays to disk file
460 ASSIGN @File TO * ! Close file
470 !
480 INPUT “Cal data received. Press ENTER to send it back.”,A$
490 !
500 ! Read arrays from file
510 !
520 ASSIGN @File TO File$ ! Open file for reading arrays
530 ENTER @File;Header,Str_len ! Read learn string headers from file
540 ALLOCATE INTEGER State2(Str_len/2) ! new learn string array from file
550 ENTER @File;State2(*) ! Read learn string from file
560 !
570 ENTER @File;Header,Cal_len ! Read CAL data headers from file
580 Arrsize=Cal_len/16 ! Array is 2 numbers, 8 bytes per number
590 ALLOCATE Cal_array2(1:Arrsize,1:2) ! new cal array from file
600 ENTER @File;Cal_array2(*) ! Read cal array from disk file
610 !
620 ! Send Learn string back
630 OUTPUT @Nwa;”INPULEAS;” ! Send learn string to analyzer
640 OUTPUT @Nwa_bin;Header,Str_len,State2(*)
650 !
660 ! Send Cal array back
670 OUTPUT @Nwa;”CALIRESP;” ! Send CAL type (Response)
680 OUTPUT @Nwa;”FORM3;INPUCALC01;” ! Output CAL array to analyzer
690 OUTPUT @Nwa_bin;Header,Cal_len,Cal_array2(*)
700 OUTPUT @Nwa;”OPC?;SAVC;” ! Save the CAL array
710 ENTER @Nwa;Reply ! Read the 1 when complete
720 !
730 OUTPUT @Nwa;”CONT;” ! Start the analyzer sweeping
740 OUTPUT @Nwa;”OPC?;WAIT;” ! Wait for the analyzer to finish
750 ENTER @Nwa;Reply
760 LOCAL @Nwa ! Release HP-IB control
770 END