Galil DMC-1700 Home Security System User Manual


 
148 • Chapter 7 Application Programming DMC-1700/1800
Note: An ENDIF command must always be executed for every IF command that has been executed. It is
recommended that the user not include jump commands inside IF conditional statements since this causes re-
direction of command execution. In this case, the command interpreter may not execute an ENDIF command.
Using the ELSE Command
The ELSE command is an optional part of an IF conditional statement and allows for the execution of command
only when the argument of the IF command evaluates False. The ELSE command must occur after an IF command
and has no arguments. If the argument of the IF command evaluates false, the controller will skip commands until
the ELSE command. If the argument for the IF command evaluates true, the controller will execute the commands
between the IF and ELSE command.
Nesting IF Conditional Statements
The DMC-1700/1800 allows for IF conditional statements to be included within other IF conditional statements.
This technique is known as ‘nesting’ and the DMC-1700/1800 allows up to 255 IF conditional statements to be
nested. This is a very powerful technique allowing the user to specify a variety of different cases for branching.
Command Format - IF, ELSE and ENDIF
FORMAT: DESCRIPTION
IF conditional statement(s)
Execute commands proceeding IF command (up to ELSE command) if
conditional statement(s) is true, otherwise continue executing at ENDIF
command or optional ELSE command.
ELSE
Optional command. Allows for commands to be executed when argument
of IF command evaluates not true. Can only be used with IF command.
ENDIF
Command to end IF conditional statement. Program must have an ENDIF
command for every IF command.
Example using IF, ELSE and ENDIF:
#TEST Begin Main Program “TEST”
II,,3 Enable input interrupts on input 1 and input 2
MG “WAITING FOR INPUT 1, INPUT 2” Output message
#LOOP Label to be used for endless loop
JP #LOOP Endless loop
EN End of main program
#ININT Input Interrupt Subroutine
IF (@IN[1]=0) IF conditional statement based on input 1
IF (@IN[2]=0) 2
nd
IF conditional statement executed if 1
st
IF conditional true
MG “INPUT 1 AND INPUT 2 ARE ACTIVE” Message to be executed if 2
nd
IF conditional is true
ELSE ELSE command for 2
nd
IF conditional statement
MG “ONLY INPUT 1 IS ACTIVE Message to be executed if 2
nd
IF conditional is false
ENDIF End of 2
nd
conditional statement
ELSE ELSE command for 1
st
IF conditional statement
MG”ONLY INPUT 2 IS ACTIVE” Message to be executed if 1
st
IF conditional statement
ENDIF End of 1
st
conditional statement
#WAIT Label to be used for a loop
JP#WAIT,(@IN[1]=0) | (@IN[2]=0) Loop until both input 1 and input 2 are not active
RI0 End Input Interrupt Routine without restoring trippoints