Actions

LOOP/ENDLOOP

From Zenitel Wiki

Revision as of 11:11, 19 December 2022 by Asle (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
AI.png

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.

Note icon Use LOOP with caution. As a safety precaution, looping will stop after 1000 iterations. 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 examples:

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


Another example her: Group Call - Increased volume

MediaWiki spam blocked by CleanTalk.