Исправление ошибок в wifi радио.
Feb. 9th, 2014 03:29 amВо время использования wifi радио выяснялось, что mpd - это тормозная и глючная программа, в которой могут возникать ошибки, но она про это даже не сообщит через mpc или "echo 'status' | nc localhost 6600", но проигрывать перестанет.
Причем эти ситуации возникают очень часто: после сброса роутора раздающего интернет этому wifi радио.
Для исправления этих глюков добавил проверку загрузки mpd при старте скрипта interface.sh.
Проверку смены проигрываемой станции в interface.sh.
Контроль времени воспроизведения в lcd.sh.
И другие незначительные изменения, вроде запрета завершения скриптов по ctrl-c.
Откорректированный текст скриптов находится по старому адресу.
Причем эти ситуации возникают очень часто: после сброса роутора раздающего интернет этому wifi радио.
Для исправления этих глюков добавил проверку загрузки mpd при старте скрипта interface.sh.
until ps | grep -v grep | grep -q mpd
do
sleep 1
doneПроверку смены проигрываемой станции в interface.sh.
until mpc | grep "\[playing\] \#$[$value + 1]/"
do
mpc play $[$value + 1]
done
Контроль времени воспроизведения в lcd.sh.
OLD_TIME=
while true # loop forever
do
TIME="0"
STATE="UNKNOWN"
RESP=`echo -e "status\\nclose" | nc localhost 6600 `
IFS=": "
while read KEY VALUE; do
case "$KEY" in
state) STATE="$VALUE";;
time) TIME="$VALUE";;
esac
done <<<"$RESP"
unset IFS
if [ "$STATE" == "play" ]; then
if [ "$TIME" = "$OLD_TIME" ]; then
mpc stop; mpc play
sleep 1
continue
fi
fi
OLD_TIME=$TIME
......
......
done
И другие незначительные изменения, вроде запрета завершения скриптов по ctrl-c.
Откорректированный текст скриптов находится по старому адресу.