4-37
Programming
Example Programs
Example 4. Measure WDM channel separation
This program measures the line separations on a WDM system. It measures
separation (delta) between power and wavelength of each line using com-
mands from the CALCulate3 subsystem.
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
DIM Key$[1]
ON ERROR GOTO Error_msg
Set_ese
PRINT USING "37A,33A";"Multi-Wavelength Meter Identity is : ";FNIdentity$
ON TIMEOUT 7,5 CALL Err_mngmt
Cmd_opc("*RST")
! Change to list-by-wavelength display
Cmd_opc(":CONF:ARR:POW:WAV")
! Trigger and wait for one measurement
Cmd_opc(":INIT")
Cmd_opc("*WAI")
! Turn on delta mode
Cmd_opc(":CALC3:DELT:WPOW:STAT ON")
! Set first wavelength as reference
Cmd_opc(":CALC3:DELT:REF:WAV MIN")
! Query number of data points
OUTPUT @Mwm;":CALC3:POIN?"
ENTER @Mwm USING "#,K";Nb_pt
ALLOCATE Delta_wl(1:Nb_pt)
ALLOCATE Delta_pwr(1:Nb_pt)
! Query wavelengths and powers
OUTPUT @Mwm;":CALC3:DATA? WAV"
ENTER @Mwm;Delta_wl(*)
OUTPUT @Mwm;":CALC3:DATA? POW"
ENTER @Mwm;Delta_pwr(*)
OFF TIMEOUT
FOR I=1 TO Nb_pt-1
PRINT USING "6A,2D,17A,M4D.3D,31A,S2D.2D,4A";"Line :";I;" wavelength is : ";(Delta_wl(I)+((NOT