#!/bin/bash # # usage: # robo { n | N } - go to null position # robo a.b.c.d.e.f [-r] - execute 'I' command with numerical parameters a..f # - '.' is eqivalent to ',' # - values of '0' may be omitted e.g.: ..100... = 0,0,100,0,0,0 # - a trailing "-r" changes the sign of all the parameters # robo Xn - send arbitrary command # IFC=/dev/usblp0 case "$1" in n|N) echo "N" > $IFC ;; [-0-9,.]*) P=${1//./,} P=${P//,,/,0,} P=$( echo "$P" | sed 's/,$/,0/' ) P=$( echo "$P" | sed 's/^,/0,/' ) #echo "*$P*" P=$( echo "$P" | tr , '\n' ) #echo "*$P*" if [ "$2" = "-r" ]; then P=$( echo "$P" | awk ' # { print "-"$1"-" } $1 == 0 { print "0" } $1 != 0 { print $1 * -1 } ' | tr '\n' , ) else P=$( echo "$P" | awk ' # { print "+"$1"+" } $1 == 0 { print "0" } $1 != 0 { print $1 * 1 } ' | tr '\n' , ) fi P=${P%,} echo "I$P" > $IFC ;; *) echo "$1" > $IFC ;; esac