Feb. 9th, 2014

zepete: (Default)
Во время использования wifi радио выяснялось, что mpd - это тормозная и глючная программа, в которой могут возникать ошибки, но она про это даже не сообщит через mpc или "echo 'status' | nc localhost 6600", но проигрывать перестанет.
Причем эти ситуации возникают очень часто: после сброса роутора раздающего интернет этому 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.
Откорректированный текст скриптов находится по старому адресу.

Profile

zepete: (Default)
zepete

January 2026

S M T W T F S
    1 23
4 56 78910
11121314151617
18192021222324
25262728293031

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 14th, 2026 03:49 pm
Powered by Dreamwidth Studios