Last updated: December 3, 2008
Measurement event synchronization saves time by controlling the communication between the controller, the test set, and the mobile station, so that no device does something before it is supposed to (which can cause errors or do something well after it could have). Because some measurements can run concurrently, it is necessary that the control program know when individual measurement results are available.
Measurement event synchronization is accomplished using the INITiate subsystem's command INITiate:DONE? or the STATus:OPERation:NMRReady status registers.
The INITiate:DONE? query returns a string that indicates what, if any, measurements are ready to be fetched. This query should be used inside a loop, checking each measurement that was initiated. See INITiate:DONE? for more details about this query.
The INITiate:DONE? query returns at least one of the following indicators for each pass through the loop:
The indicators marked with a o are not returned for GSM as those measurements are not available in that test application.
The indicators marked with a * are not returned for GPRS as those measurements are not available in that test application.
The indicators marked with a + are only returned for the GSM/GPRS and EGPRS lab applications.
The following example assumes that a call is currently connected and that no measurements other than TX power (TXP) and phase and frequency error (PFER) are currently being triggered. See Establishing an Active GSM Link with the Mobile Station and Triggering Process Description .
10 OUTPUT 714;"SETUP:TXPOWER:CONTINUOUS OFF" !Sets TX power trigger mode 20 !to single. 30 OUTPUT 714;"SETUP:PFERROR:CONTINUOUS OFF" !Sets PFER trigger mode 40 !to single. 50 OUTPUT 714;"INITiate:TXPower;PFERror" !Begins a TX power and 60 !PFER measurement. 70 REPEAT 80 OUTPUT 714;"INITIATE:DONE?" !Queries the test set for measurements 90 !that are done 100 ENTER 714;Meas_done$ !String value representing DONE measurements, 110 ! NONE if no measurements are done. 120 SELECT Meas_done$ !This variable will be set to WAIT until measurements 130 !are DONE. 140 CASE "TXP" !Characters must be upper case. 150 OUTPUT 714;"FETCH:TXPOWER:POWER?" !If this case is selected, Tx power 160 !(no integrity indicator) is FETCHed. 170 ENTER 714;Tx_power 180 PRINT "TX_Power is ";Tx_power 190 CASE "PFER" !Characters must be uppercase. 200 OUTPUT 714;"FETCH:PFERROR:RMS?" !If this case is selected, rms phase error 210 !measurement is FETCHed. 220 ENTER 714;Phs_error 230 PRINT "Max RMS Phase Error is ";Phs_error 240 END SELECT 250 UNTIL Meas_done$ = "NONE" !When all triggered measurements have completed, 260 !the INITiate:DONE? query returns NONE. 270 END
The STATus:OPERation:NMRReady:GSM command allows the program to immediately branch to the next operation or command without continuing through a loop as in INITiate:DONE? See STATus:OPERation:NMRReady:GSM Condition Register Bit Assignment for more details about this command.
You must enable the following so that as soon as the enabled NMRReady bit is true the program moves on.
The STATus:OPERation:NMRReady:GSM Condition Register Bit Assignment status register provides status reporting on the following measurement completions:
The following example illustrates the use of the STATus subsystem to generate a service request when a BERR measurement completes. This example assumes a call is already connected and the BERR measurement is setup (mobile station must be in loopback type A or B).
10 OUTPUT 714;"STATUS:OPERATION:NMRREADY:GSM:PTR 256" !Enable positive transition 20 !filter on fast BER bit. 30 OUTPUT 714;"STATUS:OPERATION:NMRREADY:GSM:ENABLE 256" !Enable the fast BER Bit to 40 !generate a summary message. 45 OUTPUT 714;"STATUS:OPERATION:NMRREADY:ENABLE 4" !Enable the GSM summary bit. 50 OUTPUT 714;"STATUS:OPERATION:ENABLE 512" !Enable the Operation summary bit to 60 !generate a summary message. 70 OUTPUT 714;"*SRE 128" !Enable the service request enable register to generate SRQ. 80 OUTPUT 714;"*CLS" !Clear all status data structures. 90 ON INTR 7,15 CALL Meas_complete !Define interrupt-initiated branch with a priority 100 !of 15 (highest) 110 ENABLE INTR 7;2 !Enable interrupt on interface card 7 with a bit mask 120 !(for interface's interrupt-enable register) of 2. 130 OUTPUT 714;"SETUP:FBER:CONTINUOUS OFF;:INITIATE:FBERROR" !Initiate a single 140 !fast BER test. 150 LOOP 160 DISP "Waiting for BERR test to complete" 170 WAIT .1 !"Dummy" loop 180 END LOOP 190 !Instead of a "dummy" loop, controlling application could be performing setups, 200 !making measurements, etc. 210 END 220 SUB Meas_complete 230 DISP "BER test complete, OK to FETCh results now" 240 Clear_interrupt=SPOLL(714) !Clear the RQS message in the status byte register. 250 STOP 260 SUBEND
Only one indicator is returned per query.
All active measurements must be set to single trigger mode. This ensures that when a measurement completes it remains in the "DONE" state rather than restarting. Sending the "*RST" command at the beginning of the test code or using the "SETup:CONTinous:OFF" command during measurement setups are ways to set the trigger to single for all measurements.
What Happens When a Measurement is INITiated?
STATus:OPERation:NMRReady:GSM Condition Register Bit Assignment
STATus:OPERation:NMRReady:GPRS Condition Register Bit Assignment