Difference between revisions of "LOOP/ENDLOOP"
From Zenitel Wiki
(New page: 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 jump...) |
|||
Line 4: | Line 4: | ||
[[IF/ENDIF]] along with [[STOP]] or [[BREAK (Event action)|BREAK ]] must be used to exit from the loop. | [[IF/ENDIF]] along with [[STOP]] or [[BREAK (Event action)|BREAK ]] must be used to exit from the loop. | ||
− | Useless example: | + | 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. |
+ | |||
+ | |||
+ | '''Useless example:''' | ||
tmp 0 "0" | tmp 0 "0" | ||
Line 15: | Line 18: | ||
ENDLOOP | ENDLOOP | ||
$put 8 "end loop %tmp(0) \n" | $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. | ||
+ | $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 | ||
[[Category:Event Handler]] | [[Category:Event Handler]] | ||
[[Category:Built-In Action Commands]] | [[Category:Built-In Action Commands]] |
Revision as of 06:59, 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.
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.
$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