Difference between revisions of "LOOP/ENDLOOP"
From Zenitel Wiki
(→Useless example) |
(→Useless example) |
||
Line 15: | Line 15: | ||
tmp 0 "0" | tmp 0 "0" | ||
LOOP | LOOP | ||
− | $put 8 "loop %tmp(0) \n" | + | $[[put]] 8 "loop %tmp(0) \n" |
tmp 0 "%op(%tmp(0),+,1)" | tmp 0 "%op(%tmp(0),+,1)" | ||
IF %op(%tmp(0),=,5) | IF %op(%tmp(0),=,5) |
Revision as of 07:20, 11 March 2010
The LOOP and ENDLOOP statements are used in the Event Handler. The LOOP - ENDLOOP statements can not be nested. When the script execution reaches ENDLOOP, the script jumps back to the previous LOOP statement.
IF/ENDIF along with STOP or BREAK must be used to exit from the loop.
As a safety precaution, looping will stop after 1000 iterations. Use LOOP with caution. Don't send more than a few dozen Data protocol messages from a single event.
This feature is new in AMC 11.00.
Examples
Useless example
Uses tmp, %tmp and %op to control the loop.
tmp 0 "0" LOOP $put 8 "loop %tmp(0) \n" tmp 0 "%op(%tmp(0),+,1)" IF %op(%tmp(0),=,5) BREAK ENDIF ENDLOOP $put 8 "end loop %tmp(0) \n"
The script prints the following text on TST:
loop 0 loop 1 loop 2 loop 3 loop 4 end loop 5
Useful example:
This example switches off Audio Program on own station plus stations in Mutual exclusion group of own station, using TPROG and %ges.
$TPROG L%1.dir U%chg(0,1) tmp 0 "%ges(%1.phy, 0)" LOOP IF %op(%tmp(0),=,0) STOP ENDIF $TPROG N%tmp(0) U%chg(0,1) tmp 0 "%ges(%1.phy, %tmp(0))" ENDLOOP