Собственно вожусь со своим сетапом для удаленной отладки. УСБ девайсов у меня много, 10портового хаба не хватает. Разумеется запитать все это дело, когда там заряжается планшет мобильник, питается несколько девборд и прч. проблемно. Надо бы знать, когда питалово проседает. По крайней мере пока я не поставлю более мощный адаптер питания.
В общем воспользовавшись АТ командой AT+EADC=1, православным башем, и плазмоидом MakeProgress получил примерно такое:

Китайская мобила подрубается к компу по блютуз последовательному порту, и еще работает как удаленная клавиатура. Весь софт я наваял на баше, исходник скрипта привожу ниже. Не слишком красиво, в идеале надо было делать демона на сях, но уж хрен с ним.
Аппаратный компорт остается свободен для аврки, которая управляет питанием всего.
at_daemon.sh
#!/bin/bash
if [ -e /tmp/at_fifo ]; then
echo "Already ready."
cat /dev/rfcomm0 >> /tmp/at_fifo&
else
mkfifo /tmp/at_fifo
chmod 777 /tmp/at_fifo
echo "Configuring interface"
rfcomm bind rfcomm0 34:71:B9:53:66:01 10
stty -F /dev/rfcomm0 115200
echo "AT interface ready"
fi
#enable ADC & EKPD by default
./at_files/init.sh&
while true; do cat /tmp/at_fifo|while read line; do
#echo $line
CMD=`echo $line|cut -d" " -f1`
DATA=`echo $line|cut -d" " -f2| sed 's/.$//'`
case "$CMD" in
"+EADC:")
VBAT=`echo $DATA|cut -d"," -f1`
VUSB=`echo $DATA|cut -d"," -f5`
echo '{"minimum":0,"maximum":4.5,"value":'$VBAT'}' > /tmp/vbat
echo '{"minimum":0,"maximum":6,"value":'$VUSB'}' > /tmp/vusb
echo "VBAT=$VBAT; VUSB=$VUSB"
;;
"+EKPDS:")
KEYEVENT=`echo $DATA|cut -d"," -f1`
KEYCODE=`echo $DATA|cut -d"," -f2`
if [ $KEYEVENT -eq "1" ]; then
echo $KEYCODE
./keymaps/e71.map $KEYCODE
fi
;;
"SEND")
ATCMD=`echo $line|cut -d" " -f2`
echo "$ATCMD" > /dev/rfcomm0
echo "Sending CMD: $ATCMD"
;;
"ERROR")
echo "Bad stuff =("
;;
"OK")
echo "All fine"
;;
*)
echo $line
;;
esac
done
done
init.sh
Высылает команды на включение вывода с ацп
AT() выдергиваем отсюда для своих нужд.
#!/bin/bash
AT()
{
echo "SEND AT$1" > /tmp/at_fifo
}
sleep 5
#Since there's a bug/feature - a double command of the same thing just increases the poll frequency
AT "+EKPD=0"
AT "+EADC=0"
AT "+EKPD=1"
AT "+EADC=1"
e71.map
Пример мэппинга. В туду сделать его красивше, но это как-нибудь в следующий раз.
e71.map
A small and limited example of key mapping script. Yet to be remade into a better looking map using a more neat solution.
#!/bin/bash -x
echo $1
case "$1" in
14)
xdotool key Up
;;
15)
xdotool key Down
;;
16)
xdotool key Left
;;
17)
xdotool key Right
;;
МейкПрогресс для этого пришлось немного хакнуть, он только в % отображал значение. Фичреквест отправил Никите Мельниченко, авось пофиксит к след. релизу.
P.S. Через TST-PS можно оказывается получать координаты нажатия на экран. Жаль в синий зуб не пробросишь…
Leave a Reply