LINUX.ORG.RU

[dvb][велосипед][неосилятор]satfinder

 , ,


0

1

szapfe поставить ниасилил, сваял свой скрипт на bash:

#!/bin/bash
#encode=UTF-8
#суровый Ъ-satfinder-скрипт для настройки тарелки, говорит и показывает уровень сигнала, который измеряется szap'ом
#для настройки меняем значение $conf на нужное:
conf="Yamal201 90E:11099:v:0:26470:0:0:0" 			#параметры --  название:частота(МГц):поляризация:0:скорость:0:0:0
echo $conf > ~/.szap/channels.conf
satname="Yamal201 90E 11099 V 26470" 			 #имя спутника и его параметры, чтобы не забыть
szap -n1 -H > ~/tune.txt &				#вывод szap в файл ~/tune.txt c конфигом из ~/.szap/channels.conf в "человеческом" виде
setterm -cursor off
 while let 1   						#бесконечный цикл
    do 
	b=$(tail -1 ~/tune.txt) 			#вырезаем последнюю строчку из ~/tune.txt
	c='                                                                                                    '  #100 штук пробелов
	clear
	echo $satname						#вывод названия спутника 
	echo $b							#и выхлопа szap
	e=${b:20:2}						#вырезаем % уровня
	g=${b:31:2}						#и % качества (сигнал/шум?)
	f=${c:0:e}						#отрезаем нужное количество
        d=${c:0:g}						#от 100 штук
	H1=15							#задаем ширину полоски в строках для уровня
	H2=15							#и качества
	i=0
	j=0
	a=${b:53:6}
	echo $a
	if  [ "$a" = "" ]						#если сигнал есть, то рисуем и проговариваем
	then
	echo
	else
		while [ "$i" -lt "$H1" ]
	 	  do
		   echo -e '\E[32;42m'"\033[1m" "$f" '\E[31;47m'"\033[1m" "$e" #выводим уровень(зелёным)
            	    i=$(($i+1))
         	  done
		  echo "|"							#тут промежуток между полосками
		  echo "|"
		  echo "|"
		while [ "$j" -lt "$H2" ]  
          	   do 
                      echo -e '\E[32;42m'"\033[1m" "$d" '\E[31;47m'"\033[1m" "$g" #выводим качество(зелёным же)
	    	   j=$(($j+1))
         	done
	    espeak "$e" -s 210  &>/dev/null						#говорим уровень загробным голосом (быстро)
	    tput sgr0								#сброс цветов терминала
	fi
  
	read -s -t 0.1 -n1 ext    					#выход по нажатию клавиши (какой-нибудь символьной)
	if [ "c$ext" = "c" ]
		then
		echo 
		else
		kll=$(pidof szap) 				#узнаём PID szap
		kill -9 $kll					#прибиваем, (по Ctrl+C он не останавливается)
		setterm -cursor on
		break						#и сваливаем отсюда (терминал не закрывается)
	fi	
done 

требуется поругать, но несильно, ибо не прогер, скрипт нужен для работы.


   
kll=$(pidof szap)             #узнаём PID szap 
kill -9 $kll               #прибиваем, (по Ctrl+C он не останавливается) 

Если несколько процессов, то не сработает. Например, на sendmail у меня выдаёт:

$ pidof sendmail
3274 3260 3222 3221 3219 3045 3001 2998 2447 2423 2392 2380 1928 2314 2306

можно проще:

killall szap
gserg ★★
()
Ответ на: комментарий от gserg

блин, а я думал, только по пиду прибить можно. ну не прогер же )))

igels
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.