EasyManua.ls Logo

Standa 8SMC5-USB - Page 273

Standa 8SMC5-USB
345 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Bitmask example script
/*
Bitmask example script
*/
var a = new_axis(get_next_serial(0)); // take first found axis
var gets = a.get_status(); // read status once and reuse it
var gpio = gets.GPIOFlags;
var left = STATE_LEFT_EDGE;
var right = STATE_RIGHT_EDGE;
var mask = left | right;
var result = gpio & mask;
log( to_binary(left) + " = left limit switch flag" );
log( to_binary(right) + " = right limit switch flag" );
log( to_binary(mask) + " = OR operation on flags gives the mask" );
log( to_binary(gpio) + " = gpio state" );
log( to_binary(result) + " = AND operation on state and mask gives result" );
if ( result ) {
log("At least one limit switch is on");
} else {
log("Both limit switches are off");
}
// Binary representation function
function to_binary(i)
{
bits = 32;
x = i >>> 0; // coerce to unsigned in case we need to print negative ints
str = x.toString(2); // the binary representation string
return (repeat("0", bits) + str).slice (-bits); // pad with zeroes and return
}
// String repeat function
function repeat(str, times)
{
var result="";
var pattern=str;
while (times > 0) {
if (times&1) {
result+=pattern;
}
times>>=1;
pattern+=pattern;
}
return result;
}
Page 273 / 345
Page 273 / 345