Difference between revisions of "LOOP/ENDLOOP"
From Zenitel Wiki
Line 6: | Line 6: | ||
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. | 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. | ||
+ | =Examples= | ||
− | + | ==Useless example== | |
tmp 0 "0" | tmp 0 "0" | ||
Line 26: | Line 27: | ||
end loop 5 | end loop 5 | ||
− | + | ==Useful example:== | |
− | This example switches of [[Audio Program]] on own station plus stations in [[Mutual exclusion group]] of own station. | + | This example switches of [[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) | $TPROG L%1.dir U%chg(0,1) |
Revision as of 07:04, 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.
Examples
Useless example
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 of 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