15 нояб. 2016 г.

Мигаем светодиодами в Raspberry Pi

Задача:
Есть некий важный процесс, который запускается на Raspberry Pi. 
Ему, процессу, не пристало лично заниматься такой глупостью, как мигание лампочками. 
Есть лампочки (LED), подключенные к GPIO выводам - красная и зеленая. 
Каждая из них может быть в 3-х состояниях - вкл, выкл и мигает. 
Для того, чтобы не отвлекать важный процесс, миганием занимается отдельный скрипт. А важный процесс просто пишет в файл признака соответствующее значение лампочки - on, off или blink. Если файла нет - значит лампочка не горит.
Скрипт на bash  под катом.
<pre>
#!/bin/bash
redflag="/tmp/redflag"
red=27
greenflag="/tmp/greenflag"
green=26
gpio mode $red out
gpio mode $green out
while true 
do
    sleep 0.5
    if [ -f "$redflag" ]
    then 
if grep -xq 'on\|blink' "$redflag"
        then
gpio write $red 1
fi
    else
gpio write $red 0
    fi
    if [ -f "$greenflag" ]
    then
if grep -xq 'on\|blink' "$greenflag"
        then
gpio write $green 1
fi
    else
gpio write $green 0
    fi
    sleep 0.5
    if [ -f "$redflag" ]
    then
if grep -xq "off\|blink" "$redflag"
      then
gpio write $red 0
fi
    fi
    if [ -f "$greenflag" ]
    then
if grep -xq  'off\|blink' "$greenflag"
      then
gpio write $green 0
fi
    fi
done
</pre>