75 lines
1.4 KiB
Bash
Executable File
75 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#export PATH=$PATH:$EMC2_HOME/tests/helpers
|
|
#source $EMC2_HOME/tests/helpers/test-functions.sh
|
|
|
|
wait_for_pin() {
|
|
pin="$1"
|
|
value="$2"
|
|
maxwait=10 # seconds
|
|
while [ 0 -lt $maxwait ] \
|
|
&& [ "$value" != "$(halcmd -s show pin "$pin" | awk '{print $4}')" ]; do
|
|
sleep 1
|
|
maxwait=$((maxwait - 1))
|
|
done
|
|
if [ 0 -eq $maxwait ] ; then
|
|
echo "E: waiting for pin $pin timed out"
|
|
kill "$linuxcncpid"
|
|
kill "$samplerpid"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
linuxcnc motion-test.ini &
|
|
linuxcncpid=$!
|
|
|
|
# let linuxcnc come up
|
|
TOGO=80
|
|
while [ $TOGO -gt 0 ]; do
|
|
echo "I: trying to connect to linuxcncrsh TOGO=$TOGO"
|
|
if nc -z localhost 5007; then
|
|
break
|
|
fi
|
|
sleep 0.25
|
|
TOGO=$((TOGO - 1))
|
|
done
|
|
if [ $TOGO -eq 0 ]; then
|
|
echo "I: connection to linuxcncrsh timed out"
|
|
exit 1
|
|
fi
|
|
|
|
wait_for_pin motion.in-position TRUE
|
|
|
|
echo "I: starting to capture data"
|
|
halsampler -t >| result.halsamples &
|
|
samplerpid=$!
|
|
|
|
(
|
|
echo "hello EMC mt 1.0"
|
|
echo "set enable EMCTOO"
|
|
|
|
echo "set estop off"
|
|
echo "set machine on"
|
|
|
|
echo "set mode mdi"
|
|
dist=1
|
|
echo "set mdi g0x$dist"
|
|
|
|
# Wait for movement to complete
|
|
wait_for_pin joint.0.pos-fb $dist
|
|
wait_for_pin joint.0.in-position TRUE
|
|
wait_for_pin joint.1.in-position TRUE
|
|
|
|
echo "shutdown"
|
|
) | nc localhost 5007
|
|
|
|
kill "$samplerpid"
|
|
wait "$samplerpid"
|
|
echo "I: finished capturing data"
|
|
|
|
# wait for linuxcnc to finish
|
|
wait "$linuxcncpid"
|
|
|
|
exit 0
|
|
|