updated scan-registers to support receiver scan

This commit is contained in:
Daniel Pavel 2013-05-22 20:47:04 +03:00
parent e73f076324
commit b276fbab90
1 changed files with 16 additions and 12 deletions

View File

@ -6,35 +6,39 @@ if test -z "$1"; then
fi fi
HC="$(dirname "$(readlink -f "$0")")/hidconsole" HC="$(dirname "$(readlink -f "$0")")/hidconsole"
if test "$1" = "FF"; then
DEVNUMBER=FF
else
DEVNUMBER=0$1
fi
HIDRAW=$2
z='0 1 2 3 4 5 6 7 8 9 a b c d e f' z='0 1 2 3 4 5 6 7 8 9 a b c d e f'
do_req() { do_req() {
"$HC" --hidpp $2 | grep -v ' 8F.. ..0[12]' | grep -B 1 '^>> ' "$HC" --hidpp $HIDRAW | grep -v "\[1. $DEVNUMBER 8F.. ..0[12]" | grep -B 1 '^>> '
} }
reg00=$(echo "10 0${1} 8100 000000" | do_req) oldflags=$(echo "10 ${DEVNUMBER} 8100 000000" | do_req | grep -Po "^>> \([0-9. ]*\) \[10 $DEVNUMBER 8100 \K[0-9a-f]{6}(?=\])")
oldflags=$(echo "$reg00" | grep -Po '>>.*? 8100 \K[0-9a-f]{6}(?=\])')
if [ -n "$oldflags" ]; then if [ -n "$oldflags" ]; then
echo "# Old notification flags: $oldflags" echo "# Old notification flags: $oldflags"
{ {
echo "10 0${1} 8000 ffffff" # enable all notifications echo "10 ${DEVNUMBER} 8000 ffffff" # enable all notifications
echo "10 0${1} 8100 000000" # read available notifs echo "10 ${DEVNUMBER} 8100 000000" # read available notifs
echo "10 0${1} 8000 $oldflags" # restore notifications echo "10 ${DEVNUMBER} 8000 $oldflags" # restore notifications
} | do_req | grep -B 1 '^>>.* 8100 ' } | do_req | grep -B 1 "^>>.* $DEVNUMBER 8100 "
elif [ -n "$reg00" ]; then else
echo "# Warning: hidconsole API got changed - unrecognized output" echo "# Failed to read notification flags."
echo "$reg00"
fi fi
for x in $z; do for x in $z; do
for y in $z; do for y in $z; do
[ "$x$y" = 00 ] || \ [ "$x$y" = 00 ] || \
echo "10 0${1} 81${x}${y} 000000" echo "10 ${DEVNUMBER} 81${x}${y} 000000"
done done
done | do_req done | do_req
for x in $z; do for x in $z; do
for y in $z; do for y in $z; do
echo "10 0${1} 83${x}${y} 000000" echo "10 ${DEVNUMBER} 83${x}${y} 000000"
done done
done | do_req done | do_req