4-30
Programming
Example Programs
Example 1. Measure a DFB laser
This program measures the power and wavelength of a DFB laser. It first sets
the Agilent 86120B in the single-acquisition measurement mode. Then, it trig-
gers the Agilent 86120B with the MEASure command to capture measure-
ment data of the input spectrum. Because the data is stored in the
instrument’s memory, it can be queried as needed.
Refer to the introduction to this section for a description of each subroutine
that is contained in this program.
COM /Instrument/ @Mwm
ASSIGN @Mwm TO 720
Set_ese
PRINT USING "37A,33A";"Multi-Wavelength Meter Identity is : ";FNIdentity$
OUTPUT @Mwm;":INIT:CONT OFF"
ON TIMEOUT 7,5 CALL Err_mngmt
OUTPUT @Mwm;":MEAS:SCAL:POW:WAV?"
ENTER @Mwm;Current_wl
OUTPUT @Mwm;":FETC:SCAL:POW?"
ENTER @Mwm;Current_pwr
OFF TIMEOUT
PRINT USING "20A,4D.3D,3A,19A,M2D.2D,4A";"The wavelength is : ";Current_wl /1.0E-9;" nm";" with a
power of : ";Current_pwr;" dBm"
END
Err_mngmt:SUB Err_mngmt
COM /Instrument/ @Mwm
DIM Err_msg$[255]
INTEGER Cme
CLEAR 7
REPEAT !
OUTPUT @Mwm;"*ESR?"
ENTER @Mwm;Cme
OUTPUT @Mwm;":SYST:ERR?"
ENTER @Mwm;Err_msg$
PRINT Err_msg$
UNTIL NOT BIT(Cme,2) AND NOT BIT(Cme,4) AND NOT BIT(Cme,5) AND POS(Err_msg$,"+0")
Subend:SUBEND
Set_ese:SUB Set_ese
COM /Instrument/ @Mwm
OUTPUT @Mwm;"*ESE ";IVAL("00110100",2)
SUBEND