#! /bin/csh -f # # try to see if the door is open or shut # # echo -n "\r" | sock_exchange.tcl pmac1 14001 1 "\006" 0.1 > /dev/null if($status) goto xos set openreq = `echo -n "M7003\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` set closed = `echo -n "M7004\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` set unlock = `echo -n "M7024\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` if ( "$1" == "lock") then echo "locking hutch door" echo -n "M7024=0\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 > /dev/null endif if ( "$1" == "unlock") then echo "unlocking hutch door" echo -n "M7024=1\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 > /dev/null endif set openreq = `echo -n "M7003\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` set closed = `echo -n "M7004\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` set unlock = `echo -n "M7024\r" | sock_exchange.tcl pmac1 14001 1 "\006" 1 | awk '{print $1+0}'` goto report xos: set door = `echo -n "" | xos3_exchange.tcl 1 "set_motor_dependency" 1 | awk '/door/{print $(NF-2), $NF}'` set closed = `echo "$door" | awk '/door closed/{closed=1} {print closed+0}'` set unlock = `echo "$door" | awk '/door_lock closed/{closed=1} {print 1-closed}'` if ( "$1" == "lock") then echo "locking hutch door" echo "gtos_become_master force\ngtos_set_shutter_state door_lock close" | xos3_exchange.tcl 1 "door_lock close" 1 > /dev/null endif if ( "$1" == "unlock") then echo "unlocking hutch door" echo "gtos_become_master force\ngtos_set_shutter_state door_lock open" | xos3_exchange.tcl 1 "door_lock open" 1 > /dev/null endif set door = `echo -n "" | xos3_exchange.tcl 1 "set_motor_dependency" 1 | awk '/door/{print $(NF-2), $NF}'` set closed = `echo "$door" | awk '/door closed/{closed=1} {print closed+0}'` set unlock = `echo "$door" | awk '/door_lock closed/{closed=1} {print 1-closed}'` goto report report: set state = open if ( $closed ) set state = closed set lock = locked if ( $unlock ) set lock = unlocked echo "hutch door is $state and $lock" exit set tempfile = /tmp/snap$$ set path = ( ~jamesh/imagemath/kuim/bin/ $path ) snap.com -nodisplay 4 ${tempfile}snap.jpg >& /dev/null composite -compose Multiply /data/calibrations/door_mask.bmp ${tempfile}snap.jpg ${tempfile}.jpg set state = "in unknown state" set openscore = `avediff /data/calibrations/door_open.jpg ${tempfile}.jpg | awk '/Total/{printf "%d", $NF*1000}' | tail -1` set closescore = `avediff /data/calibrations/door_closed.jpg ${tempfile}.jpg | awk '/Total/{printf "%d", $NF*1000}' | tail -1` if($openscore > $closescore) then set state = open else set state = closed endif echo "hutch door is $state" rm -f ${tempfile}snap.jpg rm -f ${tempfile}.jpg