Galil DMC-3425 Home Security System User Manual


 
128 • Chapter 7 Application Programming DMC-3425
Bit-Wise Operators
The mathematical operators & and | are bit-wise operators. The operator, &, is a Logical And. The
operator, |, is a Logical Or. These operators allow for bit-wise operations on any valid DMC-3425
numeric operand, including variables, array elements, numeric values, functions, keywords, and
arithmetic expressions. The bit-wise operators may also be used with strings. This is useful for
separating characters from an input string. When using the input command for string input, the input
variable will hold up to 6 characters. These characters are combined into a single value that is
represented as 32 bits of integer and 16 bits of fraction. Each ASCII character is represented as one
byte (8 bits), therefore the input variable can hold up to six characters. The first character of the string
will be placed in the top byte of the variable and the last character will be placed in the lowest
significant byte of the fraction. The characters can be individually separated by using bit-wise
operations as illustrated in the following example:
Instruction
Interpretation
#TEST Begin main program
IN "ENTER",LEN{S6}
Input character string of up to 6 characters into
variable ‘LEN’
FLEN=@FRAC[LEN]
Define variable ‘FLEN’ as fractional part of
variable ‘LEN’
FLEN=$10000*FLEN
Shift FLEN by 32 bits (IE - convert fraction,
FLEN, to integer)
LEN1=(FLEN&$00FF)
Mask top byte of FLEN and set this value to
variable ‘LEN1’
LEN2=(FLEN&$FF00)/$100 Let variable, ‘LEN2’ = top byte of FLEN
LEN3=LEN&$000000FF Let variable, ‘LEN3’ = bottom byte of LEN
LEN4=(LEN&$0000FF00)/$100 Let variable, ‘LEN4’ = second byte of LEN
LEN5=(LEN&$00FF0000)/$10000 Let variable, ‘LEN5’ = third byte of LEN
LEN6=(LEN&$FF000000)/$1000000 Let variable, ‘LEN6’ = fourth byte of LEN
MG LEN6 {S4} Display ‘LEN6’ as string message of up to 4 chars
MG LEN5 {S4} Display ‘LEN5’ as string message of up to 4 chars
MG LEN4 {S4} Display ‘LEN4’ as string message of up to 4 chars
MG LEN3 {S4} Display ‘LEN3’ as string message of up to 4 chars
MG LEN2 {S4} Display ‘LEN2’ as string message of up to 4 chars
MG LEN1 {S4} Display ‘LEN1’ as string message of up to 4 chars
EN
This program will accept a string input of up to 6 characters, parse each character, and then display
each character. Notice also that the values used for masking are represented in hexadecimal (as
denoted by the preceding ‘$’). For more information, see section
Sending Messages.
To illustrate further, if the user types in the string “TESTME” at the input prompt, the controller will
respond with the following:
T Response from command MG LEN6 {S4}
E Response from command MG LEN5 {S4}
S Response from command MG LEN4 {S4}
T Response from command MG LEN3 {S4}
M Response from command MG LEN2 {S4}
E Response from command MG LEN1 {S4}